home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / amstream.h < prev    next >
C/C++ Source or Header  |  2001-10-08  |  73KB  |  2,296 lines

  1.  
  2. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  3.  
  4. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  5.  
  6.  
  7.  /* File created by MIDL compiler version 6.00.0347 */
  8. /* Compiler settings for amstream.idl:
  9.     Oicf, W1, Zp8, env=Win32 (32b run)
  10.     protocol : dce , ms_ext, c_ext, robust
  11.     error checks: allocation ref bounds_check enum stub_data 
  12.     VC __declspec() decoration level: 
  13.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  14.          DECLSPEC_UUID(), MIDL_INTERFACE()
  15. */
  16. //@@MIDL_FILE_HEADING(  )
  17.  
  18.  
  19. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  20. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  21. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  22. #endif
  23.  
  24. #include "rpc.h"
  25. #include "rpcndr.h"
  26.  
  27. #ifndef __RPCNDR_H_VERSION__
  28. #error this stub requires an updated version of <rpcndr.h>
  29. #endif // __RPCNDR_H_VERSION__
  30.  
  31. #ifndef COM_NO_WINDOWS_H
  32. #include "windows.h"
  33. #include "ole2.h"
  34. #endif /*COM_NO_WINDOWS_H*/
  35.  
  36. #ifndef __amstream_h__
  37. #define __amstream_h__
  38.  
  39. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  40. #pragma once
  41. #endif
  42.  
  43. /* Forward Declarations */ 
  44.  
  45. #ifndef __IDirectShowStream_FWD_DEFINED__
  46. #define __IDirectShowStream_FWD_DEFINED__
  47. typedef interface IDirectShowStream IDirectShowStream;
  48. #endif     /* __IDirectShowStream_FWD_DEFINED__ */
  49.  
  50.  
  51. #ifndef __IAMMultiMediaStream_FWD_DEFINED__
  52. #define __IAMMultiMediaStream_FWD_DEFINED__
  53. typedef interface IAMMultiMediaStream IAMMultiMediaStream;
  54. #endif     /* __IAMMultiMediaStream_FWD_DEFINED__ */
  55.  
  56.  
  57. #ifndef __IAMMediaStream_FWD_DEFINED__
  58. #define __IAMMediaStream_FWD_DEFINED__
  59. typedef interface IAMMediaStream IAMMediaStream;
  60. #endif     /* __IAMMediaStream_FWD_DEFINED__ */
  61.  
  62.  
  63. #ifndef __IMediaStreamFilter_FWD_DEFINED__
  64. #define __IMediaStreamFilter_FWD_DEFINED__
  65. typedef interface IMediaStreamFilter IMediaStreamFilter;
  66. #endif     /* __IMediaStreamFilter_FWD_DEFINED__ */
  67.  
  68.  
  69. #ifndef __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
  70. #define __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
  71. typedef interface IDirectDrawMediaSampleAllocator IDirectDrawMediaSampleAllocator;
  72. #endif     /* __IDirectDrawMediaSampleAllocator_FWD_DEFINED__ */
  73.  
  74.  
  75. #ifndef __IDirectDrawMediaSample_FWD_DEFINED__
  76. #define __IDirectDrawMediaSample_FWD_DEFINED__
  77. typedef interface IDirectDrawMediaSample IDirectDrawMediaSample;
  78. #endif     /* __IDirectDrawMediaSample_FWD_DEFINED__ */
  79.  
  80.  
  81. #ifndef __IAMMediaTypeStream_FWD_DEFINED__
  82. #define __IAMMediaTypeStream_FWD_DEFINED__
  83. typedef interface IAMMediaTypeStream IAMMediaTypeStream;
  84. #endif     /* __IAMMediaTypeStream_FWD_DEFINED__ */
  85.  
  86.  
  87. #ifndef __IAMMediaTypeSample_FWD_DEFINED__
  88. #define __IAMMediaTypeSample_FWD_DEFINED__
  89. typedef interface IAMMediaTypeSample IAMMediaTypeSample;
  90. #endif     /* __IAMMediaTypeSample_FWD_DEFINED__ */
  91.  
  92.  
  93. #ifndef __AMMultiMediaStream_FWD_DEFINED__
  94. #define __AMMultiMediaStream_FWD_DEFINED__
  95.  
  96. #ifdef __cplusplus
  97. typedef class AMMultiMediaStream AMMultiMediaStream;
  98. #else
  99. typedef struct AMMultiMediaStream AMMultiMediaStream;
  100. #endif /* __cplusplus */
  101.  
  102. #endif     /* __AMMultiMediaStream_FWD_DEFINED__ */
  103.  
  104.  
  105. /* header files for imported files */
  106. #include "unknwn.h"
  107. #include "mmstream.h"
  108. #include "strmif.h"
  109.  
  110. #ifdef __cplusplus
  111. extern "C"{
  112. #endif 
  113.  
  114. void * __RPC_USER MIDL_user_allocate(size_t);
  115. void __RPC_USER MIDL_user_free( void * ); 
  116.  
  117. /* interface __MIDL_itf_amstream_0000 */
  118. /* [local] */ 
  119.  
  120. #include <ddraw.h>
  121. #include <mmsystem.h>
  122. #include <mmstream.h>
  123. #include <ddstream.h>
  124. #include <austream.h>
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133. enum __MIDL___MIDL_itf_amstream_0000_0001
  134.     {    AMMSF_NOGRAPHTHREAD    = 0x1
  135.     } ;
  136.  
  137. enum __MIDL___MIDL_itf_amstream_0000_0002
  138.     {    AMMSF_ADDDEFAULTRENDERER    = 0x1,
  139.     AMMSF_CREATEPEER    = 0x2,
  140.     AMMSF_STOPIFNOSAMPLES    = 0x4,
  141.     AMMSF_NOSTALL    = 0x8
  142.     } ;
  143.  
  144. enum __MIDL___MIDL_itf_amstream_0000_0003
  145.     {    AMMSF_RENDERTYPEMASK    = 0x3,
  146.     AMMSF_RENDERTOEXISTING    = 0,
  147.     AMMSF_RENDERALLSTREAMS    = 0x1,
  148.     AMMSF_NORENDER    = 0x2,
  149.     AMMSF_NOCLOCK    = 0x4,
  150.     AMMSF_RUN    = 0x8
  151.     } ;
  152. typedef /* [public][public][public][public][public][v1_enum] */ 
  153. enum __MIDL___MIDL_itf_amstream_0000_0004
  154.     {    Disabled    = 0,
  155.     ReadData    = 1,
  156.     RenderData    = 2
  157.     }     OUTPUT_STATE;
  158.  
  159.  
  160.  
  161. extern RPC_IF_HANDLE __MIDL_itf_amstream_0000_v0_0_c_ifspec;
  162. extern RPC_IF_HANDLE __MIDL_itf_amstream_0000_v0_0_s_ifspec;
  163.  
  164. #ifndef __IDirectShowStream_INTERFACE_DEFINED__
  165. #define __IDirectShowStream_INTERFACE_DEFINED__
  166.  
  167. /* interface IDirectShowStream */
  168. /* [unique][helpstring][dual][uuid][object] */ 
  169.  
  170.  
  171. EXTERN_C const IID IID_IDirectShowStream;
  172.  
  173. #if defined(__cplusplus) && !defined(CINTERFACE)
  174.     
  175.     MIDL_INTERFACE("7DB01C96-C0C3-11d0-8FF1-00C04FD9189D")
  176.     IDirectShowStream : public IDispatch
  177.     {
  178.     public:
  179.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileName( 
  180.             /* [retval][out] */ BSTR *pVal) = 0;
  181.         
  182.         virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FileName( 
  183.             /* [in] */ BSTR newVal) = 0;
  184.         
  185.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Video( 
  186.             /* [retval][out] */ OUTPUT_STATE *pVal) = 0;
  187.         
  188.         virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Video( 
  189.             /* [in] */ OUTPUT_STATE newVal) = 0;
  190.         
  191.         virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Audio( 
  192.             /* [retval][out] */ OUTPUT_STATE *pVal) = 0;
  193.         
  194.         virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Audio( 
  195.             /* [in] */ OUTPUT_STATE newVal) = 0;
  196.         
  197.     };
  198.     
  199. #else     /* C style interface */
  200.  
  201.     typedef struct IDirectShowStreamVtbl
  202.     {
  203.         BEGIN_INTERFACE
  204.         
  205.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  206.             IDirectShowStream * This,
  207.             /* [in] */ REFIID riid,
  208.             /* [iid_is][out] */ void **ppvObject);
  209.         
  210.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  211.             IDirectShowStream * This);
  212.         
  213.         ULONG ( STDMETHODCALLTYPE *Release )( 
  214.             IDirectShowStream * This);
  215.         
  216.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  217.             IDirectShowStream * This,
  218.             /* [out] */ UINT *pctinfo);
  219.         
  220.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  221.             IDirectShowStream * This,
  222.             /* [in] */ UINT iTInfo,
  223.             /* [in] */ LCID lcid,
  224.             /* [out] */ ITypeInfo **ppTInfo);
  225.         
  226.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  227.             IDirectShowStream * This,
  228.             /* [in] */ REFIID riid,
  229.             /* [size_is][in] */ LPOLESTR *rgszNames,
  230.             /* [in] */ UINT cNames,
  231.             /* [in] */ LCID lcid,
  232.             /* [size_is][out] */ DISPID *rgDispId);
  233.         
  234.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  235.             IDirectShowStream * This,
  236.             /* [in] */ DISPID dispIdMember,
  237.             /* [in] */ REFIID riid,
  238.             /* [in] */ LCID lcid,
  239.             /* [in] */ WORD wFlags,
  240.             /* [out][in] */ DISPPARAMS *pDispParams,
  241.             /* [out] */ VARIANT *pVarResult,
  242.             /* [out] */ EXCEPINFO *pExcepInfo,
  243.             /* [out] */ UINT *puArgErr);
  244.         
  245.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileName )( 
  246.             IDirectShowStream * This,
  247.             /* [retval][out] */ BSTR *pVal);
  248.         
  249.         /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FileName )( 
  250.             IDirectShowStream * This,
  251.             /* [in] */ BSTR newVal);
  252.         
  253.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Video )( 
  254.             IDirectShowStream * This,
  255.             /* [retval][out] */ OUTPUT_STATE *pVal);
  256.         
  257.         /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Video )( 
  258.             IDirectShowStream * This,
  259.             /* [in] */ OUTPUT_STATE newVal);
  260.         
  261.         /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Audio )( 
  262.             IDirectShowStream * This,
  263.             /* [retval][out] */ OUTPUT_STATE *pVal);
  264.         
  265.         /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Audio )( 
  266.             IDirectShowStream * This,
  267.             /* [in] */ OUTPUT_STATE newVal);
  268.         
  269.         END_INTERFACE
  270.     } IDirectShowStreamVtbl;
  271.  
  272.     interface IDirectShowStream
  273.     {
  274.         CONST_VTBL struct IDirectShowStreamVtbl *lpVtbl;
  275.     };
  276.  
  277.     
  278.  
  279. #ifdef COBJMACROS
  280.  
  281.  
  282. #define IDirectShowStream_QueryInterface(This,riid,ppvObject)    \
  283.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  284.  
  285. #define IDirectShowStream_AddRef(This)    \
  286.     (This)->lpVtbl -> AddRef(This)
  287.  
  288. #define IDirectShowStream_Release(This)    \
  289.     (This)->lpVtbl -> Release(This)
  290.  
  291.  
  292. #define IDirectShowStream_GetTypeInfoCount(This,pctinfo)    \
  293.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  294.  
  295. #define IDirectShowStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
  296.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  297.  
  298. #define IDirectShowStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)    \
  299.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  300.  
  301. #define IDirectShowStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
  302.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  303.  
  304.  
  305. #define IDirectShowStream_get_FileName(This,pVal)    \
  306.     (This)->lpVtbl -> get_FileName(This,pVal)
  307.  
  308. #define IDirectShowStream_put_FileName(This,newVal)    \
  309.     (This)->lpVtbl -> put_FileName(This,newVal)
  310.  
  311. #define IDirectShowStream_get_Video(This,pVal)    \
  312.     (This)->lpVtbl -> get_Video(This,pVal)
  313.  
  314. #define IDirectShowStream_put_Video(This,newVal)    \
  315.     (This)->lpVtbl -> put_Video(This,newVal)
  316.  
  317. #define IDirectShowStream_get_Audio(This,pVal)    \
  318.     (This)->lpVtbl -> get_Audio(This,pVal)
  319.  
  320. #define IDirectShowStream_put_Audio(This,newVal)    \
  321.     (This)->lpVtbl -> put_Audio(This,newVal)
  322.  
  323. #endif /* COBJMACROS */
  324.  
  325.  
  326. #endif     /* C style interface */
  327.  
  328.  
  329.  
  330. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IDirectShowStream_get_FileName_Proxy( 
  331.     IDirectShowStream * This,
  332.     /* [retval][out] */ BSTR *pVal);
  333.  
  334.  
  335. void __RPC_STUB IDirectShowStream_get_FileName_Stub(
  336.     IRpcStubBuffer *This,
  337.     IRpcChannelBuffer *_pRpcChannelBuffer,
  338.     PRPC_MESSAGE _pRpcMessage,
  339.     DWORD *_pdwStubPhase);
  340.  
  341.  
  342. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IDirectShowStream_put_FileName_Proxy( 
  343.     IDirectShowStream * This,
  344.     /* [in] */ BSTR newVal);
  345.  
  346.  
  347. void __RPC_STUB IDirectShowStream_put_FileName_Stub(
  348.     IRpcStubBuffer *This,
  349.     IRpcChannelBuffer *_pRpcChannelBuffer,
  350.     PRPC_MESSAGE _pRpcMessage,
  351.     DWORD *_pdwStubPhase);
  352.  
  353.  
  354. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IDirectShowStream_get_Video_Proxy( 
  355.     IDirectShowStream * This,
  356.     /* [retval][out] */ OUTPUT_STATE *pVal);
  357.  
  358.  
  359. void __RPC_STUB IDirectShowStream_get_Video_Stub(
  360.     IRpcStubBuffer *This,
  361.     IRpcChannelBuffer *_pRpcChannelBuffer,
  362.     PRPC_MESSAGE _pRpcMessage,
  363.     DWORD *_pdwStubPhase);
  364.  
  365.  
  366. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IDirectShowStream_put_Video_Proxy( 
  367.     IDirectShowStream * This,
  368.     /* [in] */ OUTPUT_STATE newVal);
  369.  
  370.  
  371. void __RPC_STUB IDirectShowStream_put_Video_Stub(
  372.     IRpcStubBuffer *This,
  373.     IRpcChannelBuffer *_pRpcChannelBuffer,
  374.     PRPC_MESSAGE _pRpcMessage,
  375.     DWORD *_pdwStubPhase);
  376.  
  377.  
  378. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IDirectShowStream_get_Audio_Proxy( 
  379.     IDirectShowStream * This,
  380.     /* [retval][out] */ OUTPUT_STATE *pVal);
  381.  
  382.  
  383. void __RPC_STUB IDirectShowStream_get_Audio_Stub(
  384.     IRpcStubBuffer *This,
  385.     IRpcChannelBuffer *_pRpcChannelBuffer,
  386.     PRPC_MESSAGE _pRpcMessage,
  387.     DWORD *_pdwStubPhase);
  388.  
  389.  
  390. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IDirectShowStream_put_Audio_Proxy( 
  391.     IDirectShowStream * This,
  392.     /* [in] */ OUTPUT_STATE newVal);
  393.  
  394.  
  395. void __RPC_STUB IDirectShowStream_put_Audio_Stub(
  396.     IRpcStubBuffer *This,
  397.     IRpcChannelBuffer *_pRpcChannelBuffer,
  398.     PRPC_MESSAGE _pRpcMessage,
  399.     DWORD *_pdwStubPhase);
  400.  
  401.  
  402.  
  403. #endif     /* __IDirectShowStream_INTERFACE_DEFINED__ */
  404.  
  405.  
  406. #ifndef __IAMMultiMediaStream_INTERFACE_DEFINED__
  407. #define __IAMMultiMediaStream_INTERFACE_DEFINED__
  408.  
  409. /* interface IAMMultiMediaStream */
  410. /* [unique][uuid][object] */ 
  411.  
  412.  
  413. EXTERN_C const IID IID_IAMMultiMediaStream;
  414.  
  415. #if defined(__cplusplus) && !defined(CINTERFACE)
  416.     
  417.     MIDL_INTERFACE("BEBE595C-9A6F-11d0-8FDE-00C04FD9189D")
  418.     IAMMultiMediaStream : public IMultiMediaStream
  419.     {
  420.     public:
  421.         virtual HRESULT STDMETHODCALLTYPE Initialize( 
  422.             /* [in] */ STREAM_TYPE StreamType,
  423.             /* [in] */ DWORD dwFlags,
  424.             /* [in] */ IGraphBuilder *pFilterGraph) = 0;
  425.         
  426.         virtual HRESULT STDMETHODCALLTYPE GetFilterGraph( 
  427.             /* [out] */ IGraphBuilder **ppGraphBuilder) = 0;
  428.         
  429.         virtual HRESULT STDMETHODCALLTYPE GetFilter( 
  430.             /* [out] */ IMediaStreamFilter **ppFilter) = 0;
  431.         
  432.         virtual HRESULT STDMETHODCALLTYPE AddMediaStream( 
  433.             /* [in] */ IUnknown *pStreamObject,
  434.             /* [in] */ const MSPID *PurposeId,
  435.             /* [in] */ DWORD dwFlags,
  436.             /* [out] */ IMediaStream **ppNewStream) = 0;
  437.         
  438.         virtual HRESULT STDMETHODCALLTYPE OpenFile( 
  439.             /* [in] */ LPCWSTR pszFileName,
  440.             /* [in] */ DWORD dwFlags) = 0;
  441.         
  442.         virtual HRESULT STDMETHODCALLTYPE OpenMoniker( 
  443.             /* [in] */ IBindCtx *pCtx,
  444.             /* [in] */ IMoniker *pMoniker,
  445.             /* [in] */ DWORD dwFlags) = 0;
  446.         
  447.         virtual HRESULT STDMETHODCALLTYPE Render( 
  448.             /* [in] */ DWORD dwFlags) = 0;
  449.         
  450.     };
  451.     
  452. #else     /* C style interface */
  453.  
  454.     typedef struct IAMMultiMediaStreamVtbl
  455.     {
  456.         BEGIN_INTERFACE
  457.         
  458.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  459.             IAMMultiMediaStream * This,
  460.             /* [in] */ REFIID riid,
  461.             /* [iid_is][out] */ void **ppvObject);
  462.         
  463.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  464.             IAMMultiMediaStream * This);
  465.         
  466.         ULONG ( STDMETHODCALLTYPE *Release )( 
  467.             IAMMultiMediaStream * This);
  468.         
  469.         HRESULT ( STDMETHODCALLTYPE *GetInformation )( 
  470.             IAMMultiMediaStream * This,
  471.             /* [out] */ DWORD *pdwFlags,
  472.             /* [out] */ STREAM_TYPE *pStreamType);
  473.         
  474.         HRESULT ( STDMETHODCALLTYPE *GetMediaStream )( 
  475.             IAMMultiMediaStream * This,
  476.             /* [in] */ REFMSPID idPurpose,
  477.             /* [out] */ IMediaStream **ppMediaStream);
  478.         
  479.         HRESULT ( STDMETHODCALLTYPE *EnumMediaStreams )( 
  480.             IAMMultiMediaStream * This,
  481.             /* [in] */ long Index,
  482.             /* [out] */ IMediaStream **ppMediaStream);
  483.         
  484.         HRESULT ( STDMETHODCALLTYPE *GetState )( 
  485.             IAMMultiMediaStream * This,
  486.             /* [out] */ STREAM_STATE *pCurrentState);
  487.         
  488.         HRESULT ( STDMETHODCALLTYPE *SetState )( 
  489.             IAMMultiMediaStream * This,
  490.             /* [in] */ STREAM_STATE NewState);
  491.         
  492.         HRESULT ( STDMETHODCALLTYPE *GetTime )( 
  493.             IAMMultiMediaStream * This,
  494.             /* [out] */ STREAM_TIME *pCurrentTime);
  495.         
  496.         HRESULT ( STDMETHODCALLTYPE *GetDuration )( 
  497.             IAMMultiMediaStream * This,
  498.             /* [out] */ STREAM_TIME *pDuration);
  499.         
  500.         HRESULT ( STDMETHODCALLTYPE *Seek )( 
  501.             IAMMultiMediaStream * This,
  502.             /* [in] */ STREAM_TIME SeekTime);
  503.         
  504.         HRESULT ( STDMETHODCALLTYPE *GetEndOfStreamEventHandle )( 
  505.             IAMMultiMediaStream * This,
  506.             /* [out] */ HANDLE *phEOS);
  507.         
  508.         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  509.             IAMMultiMediaStream * This,
  510.             /* [in] */ STREAM_TYPE StreamType,
  511.             /* [in] */ DWORD dwFlags,
  512.             /* [in] */ IGraphBuilder *pFilterGraph);
  513.         
  514.         HRESULT ( STDMETHODCALLTYPE *GetFilterGraph )( 
  515.             IAMMultiMediaStream * This,
  516.             /* [out] */ IGraphBuilder **ppGraphBuilder);
  517.         
  518.         HRESULT ( STDMETHODCALLTYPE *GetFilter )( 
  519.             IAMMultiMediaStream * This,
  520.             /* [out] */ IMediaStreamFilter **ppFilter);
  521.         
  522.         HRESULT ( STDMETHODCALLTYPE *AddMediaStream )( 
  523.             IAMMultiMediaStream * This,
  524.             /* [in] */ IUnknown *pStreamObject,
  525.             /* [in] */ const MSPID *PurposeId,
  526.             /* [in] */ DWORD dwFlags,
  527.             /* [out] */ IMediaStream **ppNewStream);
  528.         
  529.         HRESULT ( STDMETHODCALLTYPE *OpenFile )( 
  530.             IAMMultiMediaStream * This,
  531.             /* [in] */ LPCWSTR pszFileName,
  532.             /* [in] */ DWORD dwFlags);
  533.         
  534.         HRESULT ( STDMETHODCALLTYPE *OpenMoniker )( 
  535.             IAMMultiMediaStream * This,
  536.             /* [in] */ IBindCtx *pCtx,
  537.             /* [in] */ IMoniker *pMoniker,
  538.             /* [in] */ DWORD dwFlags);
  539.         
  540.         HRESULT ( STDMETHODCALLTYPE *Render )( 
  541.             IAMMultiMediaStream * This,
  542.             /* [in] */ DWORD dwFlags);
  543.         
  544.         END_INTERFACE
  545.     } IAMMultiMediaStreamVtbl;
  546.  
  547.     interface IAMMultiMediaStream
  548.     {
  549.         CONST_VTBL struct IAMMultiMediaStreamVtbl *lpVtbl;
  550.     };
  551.  
  552.     
  553.  
  554. #ifdef COBJMACROS
  555.  
  556.  
  557. #define IAMMultiMediaStream_QueryInterface(This,riid,ppvObject)    \
  558.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  559.  
  560. #define IAMMultiMediaStream_AddRef(This)    \
  561.     (This)->lpVtbl -> AddRef(This)
  562.  
  563. #define IAMMultiMediaStream_Release(This)    \
  564.     (This)->lpVtbl -> Release(This)
  565.  
  566.  
  567. #define IAMMultiMediaStream_GetInformation(This,pdwFlags,pStreamType)    \
  568.     (This)->lpVtbl -> GetInformation(This,pdwFlags,pStreamType)
  569.  
  570. #define IAMMultiMediaStream_GetMediaStream(This,idPurpose,ppMediaStream)    \
  571.     (This)->lpVtbl -> GetMediaStream(This,idPurpose,ppMediaStream)
  572.  
  573. #define IAMMultiMediaStream_EnumMediaStreams(This,Index,ppMediaStream)    \
  574.     (This)->lpVtbl -> EnumMediaStreams(This,Index,ppMediaStream)
  575.  
  576. #define IAMMultiMediaStream_GetState(This,pCurrentState)    \
  577.     (This)->lpVtbl -> GetState(This,pCurrentState)
  578.  
  579. #define IAMMultiMediaStream_SetState(This,NewState)    \
  580.     (This)->lpVtbl -> SetState(This,NewState)
  581.  
  582. #define IAMMultiMediaStream_GetTime(This,pCurrentTime)    \
  583.     (This)->lpVtbl -> GetTime(This,pCurrentTime)
  584.  
  585. #define IAMMultiMediaStream_GetDuration(This,pDuration)    \
  586.     (This)->lpVtbl -> GetDuration(This,pDuration)
  587.  
  588. #define IAMMultiMediaStream_Seek(This,SeekTime)    \
  589.     (This)->lpVtbl -> Seek(This,SeekTime)
  590.  
  591. #define IAMMultiMediaStream_GetEndOfStreamEventHandle(This,phEOS)    \
  592.     (This)->lpVtbl -> GetEndOfStreamEventHandle(This,phEOS)
  593.  
  594.  
  595. #define IAMMultiMediaStream_Initialize(This,StreamType,dwFlags,pFilterGraph)    \
  596.     (This)->lpVtbl -> Initialize(This,StreamType,dwFlags,pFilterGraph)
  597.  
  598. #define IAMMultiMediaStream_GetFilterGraph(This,ppGraphBuilder)    \
  599.     (This)->lpVtbl -> GetFilterGraph(This,ppGraphBuilder)
  600.  
  601. #define IAMMultiMediaStream_GetFilter(This,ppFilter)    \
  602.     (This)->lpVtbl -> GetFilter(This,ppFilter)
  603.  
  604. #define IAMMultiMediaStream_AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream)    \
  605.     (This)->lpVtbl -> AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream)
  606.  
  607. #define IAMMultiMediaStream_OpenFile(This,pszFileName,dwFlags)    \
  608.     (This)->lpVtbl -> OpenFile(This,pszFileName,dwFlags)
  609.  
  610. #define IAMMultiMediaStream_OpenMoniker(This,pCtx,pMoniker,dwFlags)    \
  611.     (This)->lpVtbl -> OpenMoniker(This,pCtx,pMoniker,dwFlags)
  612.  
  613. #define IAMMultiMediaStream_Render(This,dwFlags)    \
  614.     (This)->lpVtbl -> Render(This,dwFlags)
  615.  
  616. #endif /* COBJMACROS */
  617.  
  618.  
  619. #endif     /* C style interface */
  620.  
  621.  
  622.  
  623. HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_Initialize_Proxy( 
  624.     IAMMultiMediaStream * This,
  625.     /* [in] */ STREAM_TYPE StreamType,
  626.     /* [in] */ DWORD dwFlags,
  627.     /* [in] */ IGraphBuilder *pFilterGraph);
  628.  
  629.  
  630. void __RPC_STUB IAMMultiMediaStream_Initialize_Stub(
  631.     IRpcStubBuffer *This,
  632.     IRpcChannelBuffer *_pRpcChannelBuffer,
  633.     PRPC_MESSAGE _pRpcMessage,
  634.     DWORD *_pdwStubPhase);
  635.  
  636.  
  637. HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_GetFilterGraph_Proxy( 
  638.     IAMMultiMediaStream * This,
  639.     /* [out] */ IGraphBuilder **ppGraphBuilder);
  640.  
  641.  
  642. void __RPC_STUB IAMMultiMediaStream_GetFilterGraph_Stub(
  643.     IRpcStubBuffer *This,
  644.     IRpcChannelBuffer *_pRpcChannelBuffer,
  645.     PRPC_MESSAGE _pRpcMessage,
  646.     DWORD *_pdwStubPhase);
  647.  
  648.  
  649. HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_GetFilter_Proxy( 
  650.     IAMMultiMediaStream * This,
  651.     /* [out] */ IMediaStreamFilter **ppFilter);
  652.  
  653.  
  654. void __RPC_STUB IAMMultiMediaStream_GetFilter_Stub(
  655.     IRpcStubBuffer *This,
  656.     IRpcChannelBuffer *_pRpcChannelBuffer,
  657.     PRPC_MESSAGE _pRpcMessage,
  658.     DWORD *_pdwStubPhase);
  659.  
  660.  
  661. HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_AddMediaStream_Proxy( 
  662.     IAMMultiMediaStream * This,
  663.     /* [in] */ IUnknown *pStreamObject,
  664.     /* [in] */ const MSPID *PurposeId,
  665.     /* [in] */ DWORD dwFlags,
  666.     /* [out] */ IMediaStream **ppNewStream);
  667.  
  668.  
  669. void __RPC_STUB IAMMultiMediaStream_AddMediaStream_Stub(
  670.     IRpcStubBuffer *This,
  671.     IRpcChannelBuffer *_pRpcChannelBuffer,
  672.     PRPC_MESSAGE _pRpcMessage,
  673.     DWORD *_pdwStubPhase);
  674.  
  675.  
  676. HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_OpenFile_Proxy( 
  677.     IAMMultiMediaStream * This,
  678.     /* [in] */ LPCWSTR pszFileName,
  679.     /* [in] */ DWORD dwFlags);
  680.  
  681.  
  682. void __RPC_STUB IAMMultiMediaStream_OpenFile_Stub(
  683.     IRpcStubBuffer *This,
  684.     IRpcChannelBuffer *_pRpcChannelBuffer,
  685.     PRPC_MESSAGE _pRpcMessage,
  686.     DWORD *_pdwStubPhase);
  687.  
  688.  
  689. HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_OpenMoniker_Proxy( 
  690.     IAMMultiMediaStream * This,
  691.     /* [in] */ IBindCtx *pCtx,
  692.     /* [in] */ IMoniker *pMoniker,
  693.     /* [in] */ DWORD dwFlags);
  694.  
  695.  
  696. void __RPC_STUB IAMMultiMediaStream_OpenMoniker_Stub(
  697.     IRpcStubBuffer *This,
  698.     IRpcChannelBuffer *_pRpcChannelBuffer,
  699.     PRPC_MESSAGE _pRpcMessage,
  700.     DWORD *_pdwStubPhase);
  701.  
  702.  
  703. HRESULT STDMETHODCALLTYPE IAMMultiMediaStream_Render_Proxy( 
  704.     IAMMultiMediaStream * This,
  705.     /* [in] */ DWORD dwFlags);
  706.  
  707.  
  708. void __RPC_STUB IAMMultiMediaStream_Render_Stub(
  709.     IRpcStubBuffer *This,
  710.     IRpcChannelBuffer *_pRpcChannelBuffer,
  711.     PRPC_MESSAGE _pRpcMessage,
  712.     DWORD *_pdwStubPhase);
  713.  
  714.  
  715.  
  716. #endif     /* __IAMMultiMediaStream_INTERFACE_DEFINED__ */
  717.  
  718.  
  719. #ifndef __IAMMediaStream_INTERFACE_DEFINED__
  720. #define __IAMMediaStream_INTERFACE_DEFINED__
  721.  
  722. /* interface IAMMediaStream */
  723. /* [unique][uuid][object] */ 
  724.  
  725.  
  726. EXTERN_C const IID IID_IAMMediaStream;
  727.  
  728. #if defined(__cplusplus) && !defined(CINTERFACE)
  729.     
  730.     MIDL_INTERFACE("BEBE595D-9A6F-11d0-8FDE-00C04FD9189D")
  731.     IAMMediaStream : public IMediaStream
  732.     {
  733.     public:
  734.         virtual HRESULT STDMETHODCALLTYPE Initialize( 
  735.             /* [in] */ IUnknown *pSourceObject,
  736.             /* [in] */ DWORD dwFlags,
  737.             /* [in] */ REFMSPID PurposeId,
  738.             /* [in] */ const STREAM_TYPE StreamType) = 0;
  739.         
  740.         virtual HRESULT STDMETHODCALLTYPE SetState( 
  741.             /* [in] */ FILTER_STATE State) = 0;
  742.         
  743.         virtual HRESULT STDMETHODCALLTYPE JoinAMMultiMediaStream( 
  744.             /* [in] */ IAMMultiMediaStream *pAMMultiMediaStream) = 0;
  745.         
  746.         virtual HRESULT STDMETHODCALLTYPE JoinFilter( 
  747.             /* [in] */ IMediaStreamFilter *pMediaStreamFilter) = 0;
  748.         
  749.         virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph( 
  750.             /* [in] */ IFilterGraph *pFilterGraph) = 0;
  751.         
  752.     };
  753.     
  754. #else     /* C style interface */
  755.  
  756.     typedef struct IAMMediaStreamVtbl
  757.     {
  758.         BEGIN_INTERFACE
  759.         
  760.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  761.             IAMMediaStream * This,
  762.             /* [in] */ REFIID riid,
  763.             /* [iid_is][out] */ void **ppvObject);
  764.         
  765.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  766.             IAMMediaStream * This);
  767.         
  768.         ULONG ( STDMETHODCALLTYPE *Release )( 
  769.             IAMMediaStream * This);
  770.         
  771.         HRESULT ( STDMETHODCALLTYPE *GetMultiMediaStream )( 
  772.             IAMMediaStream * This,
  773.             /* [out] */ IMultiMediaStream **ppMultiMediaStream);
  774.         
  775.         HRESULT ( STDMETHODCALLTYPE *GetInformation )( 
  776.             IAMMediaStream * This,
  777.             /* [out] */ MSPID *pPurposeId,
  778.             /* [out] */ STREAM_TYPE *pType);
  779.         
  780.         HRESULT ( STDMETHODCALLTYPE *SetSameFormat )( 
  781.             IAMMediaStream * This,
  782.             /* [in] */ IMediaStream *pStreamThatHasDesiredFormat,
  783.             /* [in] */ DWORD dwFlags);
  784.         
  785.         HRESULT ( STDMETHODCALLTYPE *AllocateSample )( 
  786.             IAMMediaStream * This,
  787.             /* [in] */ DWORD dwFlags,
  788.             /* [out] */ IStreamSample **ppSample);
  789.         
  790.         HRESULT ( STDMETHODCALLTYPE *CreateSharedSample )( 
  791.             IAMMediaStream * This,
  792.             /* [in] */ IStreamSample *pExistingSample,
  793.             /* [in] */ DWORD dwFlags,
  794.             /* [out] */ IStreamSample **ppNewSample);
  795.         
  796.         HRESULT ( STDMETHODCALLTYPE *SendEndOfStream )( 
  797.             IAMMediaStream * This,
  798.             DWORD dwFlags);
  799.         
  800.         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  801.             IAMMediaStream * This,
  802.             /* [in] */ IUnknown *pSourceObject,
  803.             /* [in] */ DWORD dwFlags,
  804.             /* [in] */ REFMSPID PurposeId,
  805.             /* [in] */ const STREAM_TYPE StreamType);
  806.         
  807.         HRESULT ( STDMETHODCALLTYPE *SetState )( 
  808.             IAMMediaStream * This,
  809.             /* [in] */ FILTER_STATE State);
  810.         
  811.         HRESULT ( STDMETHODCALLTYPE *JoinAMMultiMediaStream )( 
  812.             IAMMediaStream * This,
  813.             /* [in] */ IAMMultiMediaStream *pAMMultiMediaStream);
  814.         
  815.         HRESULT ( STDMETHODCALLTYPE *JoinFilter )( 
  816.             IAMMediaStream * This,
  817.             /* [in] */ IMediaStreamFilter *pMediaStreamFilter);
  818.         
  819.         HRESULT ( STDMETHODCALLTYPE *JoinFilterGraph )( 
  820.             IAMMediaStream * This,
  821.             /* [in] */ IFilterGraph *pFilterGraph);
  822.         
  823.         END_INTERFACE
  824.     } IAMMediaStreamVtbl;
  825.  
  826.     interface IAMMediaStream
  827.     {
  828.         CONST_VTBL struct IAMMediaStreamVtbl *lpVtbl;
  829.     };
  830.  
  831.     
  832.  
  833. #ifdef COBJMACROS
  834.  
  835.  
  836. #define IAMMediaStream_QueryInterface(This,riid,ppvObject)    \
  837.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  838.  
  839. #define IAMMediaStream_AddRef(This)    \
  840.     (This)->lpVtbl -> AddRef(This)
  841.  
  842. #define IAMMediaStream_Release(This)    \
  843.     (This)->lpVtbl -> Release(This)
  844.  
  845.  
  846. #define IAMMediaStream_GetMultiMediaStream(This,ppMultiMediaStream)    \
  847.     (This)->lpVtbl -> GetMultiMediaStream(This,ppMultiMediaStream)
  848.  
  849. #define IAMMediaStream_GetInformation(This,pPurposeId,pType)    \
  850.     (This)->lpVtbl -> GetInformation(This,pPurposeId,pType)
  851.  
  852. #define IAMMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)    \
  853.     (This)->lpVtbl -> SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
  854.  
  855. #define IAMMediaStream_AllocateSample(This,dwFlags,ppSample)    \
  856.     (This)->lpVtbl -> AllocateSample(This,dwFlags,ppSample)
  857.  
  858. #define IAMMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)    \
  859.     (This)->lpVtbl -> CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
  860.  
  861. #define IAMMediaStream_SendEndOfStream(This,dwFlags)    \
  862.     (This)->lpVtbl -> SendEndOfStream(This,dwFlags)
  863.  
  864.  
  865. #define IAMMediaStream_Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType)    \
  866.     (This)->lpVtbl -> Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType)
  867.  
  868. #define IAMMediaStream_SetState(This,State)    \
  869.     (This)->lpVtbl -> SetState(This,State)
  870.  
  871. #define IAMMediaStream_JoinAMMultiMediaStream(This,pAMMultiMediaStream)    \
  872.     (This)->lpVtbl -> JoinAMMultiMediaStream(This,pAMMultiMediaStream)
  873.  
  874. #define IAMMediaStream_JoinFilter(This,pMediaStreamFilter)    \
  875.     (This)->lpVtbl -> JoinFilter(This,pMediaStreamFilter)
  876.  
  877. #define IAMMediaStream_JoinFilterGraph(This,pFilterGraph)    \
  878.     (This)->lpVtbl -> JoinFilterGraph(This,pFilterGraph)
  879.  
  880. #endif /* COBJMACROS */
  881.  
  882.  
  883. #endif     /* C style interface */
  884.  
  885.  
  886.  
  887. HRESULT STDMETHODCALLTYPE IAMMediaStream_Initialize_Proxy( 
  888.     IAMMediaStream * This,
  889.     /* [in] */ IUnknown *pSourceObject,
  890.     /* [in] */ DWORD dwFlags,
  891.     /* [in] */ REFMSPID PurposeId,
  892.     /* [in] */ const STREAM_TYPE StreamType);
  893.  
  894.  
  895. void __RPC_STUB IAMMediaStream_Initialize_Stub(
  896.     IRpcStubBuffer *This,
  897.     IRpcChannelBuffer *_pRpcChannelBuffer,
  898.     PRPC_MESSAGE _pRpcMessage,
  899.     DWORD *_pdwStubPhase);
  900.  
  901.  
  902. HRESULT STDMETHODCALLTYPE IAMMediaStream_SetState_Proxy( 
  903.     IAMMediaStream * This,
  904.     /* [in] */ FILTER_STATE State);
  905.  
  906.  
  907. void __RPC_STUB IAMMediaStream_SetState_Stub(
  908.     IRpcStubBuffer *This,
  909.     IRpcChannelBuffer *_pRpcChannelBuffer,
  910.     PRPC_MESSAGE _pRpcMessage,
  911.     DWORD *_pdwStubPhase);
  912.  
  913.  
  914. HRESULT STDMETHODCALLTYPE IAMMediaStream_JoinAMMultiMediaStream_Proxy( 
  915.     IAMMediaStream * This,
  916.     /* [in] */ IAMMultiMediaStream *pAMMultiMediaStream);
  917.  
  918.  
  919. void __RPC_STUB IAMMediaStream_JoinAMMultiMediaStream_Stub(
  920.     IRpcStubBuffer *This,
  921.     IRpcChannelBuffer *_pRpcChannelBuffer,
  922.     PRPC_MESSAGE _pRpcMessage,
  923.     DWORD *_pdwStubPhase);
  924.  
  925.  
  926. HRESULT STDMETHODCALLTYPE IAMMediaStream_JoinFilter_Proxy( 
  927.     IAMMediaStream * This,
  928.     /* [in] */ IMediaStreamFilter *pMediaStreamFilter);
  929.  
  930.  
  931. void __RPC_STUB IAMMediaStream_JoinFilter_Stub(
  932.     IRpcStubBuffer *This,
  933.     IRpcChannelBuffer *_pRpcChannelBuffer,
  934.     PRPC_MESSAGE _pRpcMessage,
  935.     DWORD *_pdwStubPhase);
  936.  
  937.  
  938. HRESULT STDMETHODCALLTYPE IAMMediaStream_JoinFilterGraph_Proxy( 
  939.     IAMMediaStream * This,
  940.     /* [in] */ IFilterGraph *pFilterGraph);
  941.  
  942.  
  943. void __RPC_STUB IAMMediaStream_JoinFilterGraph_Stub(
  944.     IRpcStubBuffer *This,
  945.     IRpcChannelBuffer *_pRpcChannelBuffer,
  946.     PRPC_MESSAGE _pRpcMessage,
  947.     DWORD *_pdwStubPhase);
  948.  
  949.  
  950.  
  951. #endif     /* __IAMMediaStream_INTERFACE_DEFINED__ */
  952.  
  953.  
  954. #ifndef __IMediaStreamFilter_INTERFACE_DEFINED__
  955. #define __IMediaStreamFilter_INTERFACE_DEFINED__
  956.  
  957. /* interface IMediaStreamFilter */
  958. /* [unique][uuid][local][object] */ 
  959.  
  960.  
  961. EXTERN_C const IID IID_IMediaStreamFilter;
  962.  
  963. #if defined(__cplusplus) && !defined(CINTERFACE)
  964.     
  965.     MIDL_INTERFACE("BEBE595E-9A6F-11d0-8FDE-00C04FD9189D")
  966.     IMediaStreamFilter : public IBaseFilter
  967.     {
  968.     public:
  969.         virtual HRESULT STDMETHODCALLTYPE AddMediaStream( 
  970.             /* [in] */ IAMMediaStream *pAMMediaStream) = 0;
  971.         
  972.         virtual HRESULT STDMETHODCALLTYPE GetMediaStream( 
  973.             /* [in] */ REFMSPID idPurpose,
  974.             /* [out] */ IMediaStream **ppMediaStream) = 0;
  975.         
  976.         virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams( 
  977.             /* [in] */ long Index,
  978.             /* [out] */ IMediaStream **ppMediaStream) = 0;
  979.         
  980.         virtual HRESULT STDMETHODCALLTYPE SupportSeeking( 
  981.             /* [in] */ BOOL bRenderer) = 0;
  982.         
  983.         virtual HRESULT STDMETHODCALLTYPE ReferenceTimeToStreamTime( 
  984.             /* [out][in] */ REFERENCE_TIME *pTime) = 0;
  985.         
  986.         virtual HRESULT STDMETHODCALLTYPE GetCurrentStreamTime( 
  987.             /* [out] */ REFERENCE_TIME *pCurrentStreamTime) = 0;
  988.         
  989.         virtual HRESULT STDMETHODCALLTYPE WaitUntil( 
  990.             /* [in] */ REFERENCE_TIME WaitStreamTime) = 0;
  991.         
  992.         virtual HRESULT STDMETHODCALLTYPE Flush( 
  993.             /* [in] */ BOOL bCancelEOS) = 0;
  994.         
  995.         virtual HRESULT STDMETHODCALLTYPE EndOfStream( void) = 0;
  996.         
  997.     };
  998.     
  999. #else     /* C style interface */
  1000.  
  1001.     typedef struct IMediaStreamFilterVtbl
  1002.     {
  1003.         BEGIN_INTERFACE
  1004.         
  1005.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1006.             IMediaStreamFilter * This,
  1007.             /* [in] */ REFIID riid,
  1008.             /* [iid_is][out] */ void **ppvObject);
  1009.         
  1010.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1011.             IMediaStreamFilter * This);
  1012.         
  1013.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1014.             IMediaStreamFilter * This);
  1015.         
  1016.         HRESULT ( STDMETHODCALLTYPE *GetClassID )( 
  1017.             IMediaStreamFilter * This,
  1018.             /* [out] */ CLSID *pClassID);
  1019.         
  1020.         HRESULT ( STDMETHODCALLTYPE *Stop )( 
  1021.             IMediaStreamFilter * This);
  1022.         
  1023.         HRESULT ( STDMETHODCALLTYPE *Pause )( 
  1024.             IMediaStreamFilter * This);
  1025.         
  1026.         HRESULT ( STDMETHODCALLTYPE *Run )( 
  1027.             IMediaStreamFilter * This,
  1028.             REFERENCE_TIME tStart);
  1029.         
  1030.         HRESULT ( STDMETHODCALLTYPE *GetState )( 
  1031.             IMediaStreamFilter * This,
  1032.             /* [in] */ DWORD dwMilliSecsTimeout,
  1033.             /* [out] */ FILTER_STATE *State);
  1034.         
  1035.         HRESULT ( STDMETHODCALLTYPE *SetSyncSource )( 
  1036.             IMediaStreamFilter * This,
  1037.             /* [in] */ IReferenceClock *pClock);
  1038.         
  1039.         HRESULT ( STDMETHODCALLTYPE *GetSyncSource )( 
  1040.             IMediaStreamFilter * This,
  1041.             /* [out] */ IReferenceClock **pClock);
  1042.         
  1043.         HRESULT ( STDMETHODCALLTYPE *EnumPins )( 
  1044.             IMediaStreamFilter * This,
  1045.             /* [out] */ IEnumPins **ppEnum);
  1046.         
  1047.         HRESULT ( STDMETHODCALLTYPE *FindPin )( 
  1048.             IMediaStreamFilter * This,
  1049.             /* [string][in] */ LPCWSTR Id,
  1050.             /* [out] */ IPin **ppPin);
  1051.         
  1052.         HRESULT ( STDMETHODCALLTYPE *QueryFilterInfo )( 
  1053.             IMediaStreamFilter * This,
  1054.             /* [out] */ FILTER_INFO *pInfo);
  1055.         
  1056.         HRESULT ( STDMETHODCALLTYPE *JoinFilterGraph )( 
  1057.             IMediaStreamFilter * This,
  1058.             /* [in] */ IFilterGraph *pGraph,
  1059.             /* [string][in] */ LPCWSTR pName);
  1060.         
  1061.         HRESULT ( STDMETHODCALLTYPE *QueryVendorInfo )( 
  1062.             IMediaStreamFilter * This,
  1063.             /* [string][out] */ LPWSTR *pVendorInfo);
  1064.         
  1065.         HRESULT ( STDMETHODCALLTYPE *AddMediaStream )( 
  1066.             IMediaStreamFilter * This,
  1067.             /* [in] */ IAMMediaStream *pAMMediaStream);
  1068.         
  1069.         HRESULT ( STDMETHODCALLTYPE *GetMediaStream )( 
  1070.             IMediaStreamFilter * This,
  1071.             /* [in] */ REFMSPID idPurpose,
  1072.             /* [out] */ IMediaStream **ppMediaStream);
  1073.         
  1074.         HRESULT ( STDMETHODCALLTYPE *EnumMediaStreams )( 
  1075.             IMediaStreamFilter * This,
  1076.             /* [in] */ long Index,
  1077.             /* [out] */ IMediaStream **ppMediaStream);
  1078.         
  1079.         HRESULT ( STDMETHODCALLTYPE *SupportSeeking )( 
  1080.             IMediaStreamFilter * This,
  1081.             /* [in] */ BOOL bRenderer);
  1082.         
  1083.         HRESULT ( STDMETHODCALLTYPE *ReferenceTimeToStreamTime )( 
  1084.             IMediaStreamFilter * This,
  1085.             /* [out][in] */ REFERENCE_TIME *pTime);
  1086.         
  1087.         HRESULT ( STDMETHODCALLTYPE *GetCurrentStreamTime )( 
  1088.             IMediaStreamFilter * This,
  1089.             /* [out] */ REFERENCE_TIME *pCurrentStreamTime);
  1090.         
  1091.         HRESULT ( STDMETHODCALLTYPE *WaitUntil )( 
  1092.             IMediaStreamFilter * This,
  1093.             /* [in] */ REFERENCE_TIME WaitStreamTime);
  1094.         
  1095.         HRESULT ( STDMETHODCALLTYPE *Flush )( 
  1096.             IMediaStreamFilter * This,
  1097.             /* [in] */ BOOL bCancelEOS);
  1098.         
  1099.         HRESULT ( STDMETHODCALLTYPE *EndOfStream )( 
  1100.             IMediaStreamFilter * This);
  1101.         
  1102.         END_INTERFACE
  1103.     } IMediaStreamFilterVtbl;
  1104.  
  1105.     interface IMediaStreamFilter
  1106.     {
  1107.         CONST_VTBL struct IMediaStreamFilterVtbl *lpVtbl;
  1108.     };
  1109.  
  1110.     
  1111.  
  1112. #ifdef COBJMACROS
  1113.  
  1114.  
  1115. #define IMediaStreamFilter_QueryInterface(This,riid,ppvObject)    \
  1116.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1117.  
  1118. #define IMediaStreamFilter_AddRef(This)    \
  1119.     (This)->lpVtbl -> AddRef(This)
  1120.  
  1121. #define IMediaStreamFilter_Release(This)    \
  1122.     (This)->lpVtbl -> Release(This)
  1123.  
  1124.  
  1125. #define IMediaStreamFilter_GetClassID(This,pClassID)    \
  1126.     (This)->lpVtbl -> GetClassID(This,pClassID)
  1127.  
  1128.  
  1129. #define IMediaStreamFilter_Stop(This)    \
  1130.     (This)->lpVtbl -> Stop(This)
  1131.  
  1132. #define IMediaStreamFilter_Pause(This)    \
  1133.     (This)->lpVtbl -> Pause(This)
  1134.  
  1135. #define IMediaStreamFilter_Run(This,tStart)    \
  1136.     (This)->lpVtbl -> Run(This,tStart)
  1137.  
  1138. #define IMediaStreamFilter_GetState(This,dwMilliSecsTimeout,State)    \
  1139.     (This)->lpVtbl -> GetState(This,dwMilliSecsTimeout,State)
  1140.  
  1141. #define IMediaStreamFilter_SetSyncSource(This,pClock)    \
  1142.     (This)->lpVtbl -> SetSyncSource(This,pClock)
  1143.  
  1144. #define IMediaStreamFilter_GetSyncSource(This,pClock)    \
  1145.     (This)->lpVtbl -> GetSyncSource(This,pClock)
  1146.  
  1147.  
  1148. #define IMediaStreamFilter_EnumPins(This,ppEnum)    \
  1149.     (This)->lpVtbl -> EnumPins(This,ppEnum)
  1150.  
  1151. #define IMediaStreamFilter_FindPin(This,Id,ppPin)    \
  1152.     (This)->lpVtbl -> FindPin(This,Id,ppPin)
  1153.  
  1154. #define IMediaStreamFilter_QueryFilterInfo(This,pInfo)    \
  1155.     (This)->lpVtbl -> QueryFilterInfo(This,pInfo)
  1156.  
  1157. #define IMediaStreamFilter_JoinFilterGraph(This,pGraph,pName)    \
  1158.     (This)->lpVtbl -> JoinFilterGraph(This,pGraph,pName)
  1159.  
  1160. #define IMediaStreamFilter_QueryVendorInfo(This,pVendorInfo)    \
  1161.     (This)->lpVtbl -> QueryVendorInfo(This,pVendorInfo)
  1162.  
  1163.  
  1164. #define IMediaStreamFilter_AddMediaStream(This,pAMMediaStream)    \
  1165.     (This)->lpVtbl -> AddMediaStream(This,pAMMediaStream)
  1166.  
  1167. #define IMediaStreamFilter_GetMediaStream(This,idPurpose,ppMediaStream)    \
  1168.     (This)->lpVtbl -> GetMediaStream(This,idPurpose,ppMediaStream)
  1169.  
  1170. #define IMediaStreamFilter_EnumMediaStreams(This,Index,ppMediaStream)    \
  1171.     (This)->lpVtbl -> EnumMediaStreams(This,Index,ppMediaStream)
  1172.  
  1173. #define IMediaStreamFilter_SupportSeeking(This,bRenderer)    \
  1174.     (This)->lpVtbl -> SupportSeeking(This,bRenderer)
  1175.  
  1176. #define IMediaStreamFilter_ReferenceTimeToStreamTime(This,pTime)    \
  1177.     (This)->lpVtbl -> ReferenceTimeToStreamTime(This,pTime)
  1178.  
  1179. #define IMediaStreamFilter_GetCurrentStreamTime(This,pCurrentStreamTime)    \
  1180.     (This)->lpVtbl -> GetCurrentStreamTime(This,pCurrentStreamTime)
  1181.  
  1182. #define IMediaStreamFilter_WaitUntil(This,WaitStreamTime)    \
  1183.     (This)->lpVtbl -> WaitUntil(This,WaitStreamTime)
  1184.  
  1185. #define IMediaStreamFilter_Flush(This,bCancelEOS)    \
  1186.     (This)->lpVtbl -> Flush(This,bCancelEOS)
  1187.  
  1188. #define IMediaStreamFilter_EndOfStream(This)    \
  1189.     (This)->lpVtbl -> EndOfStream(This)
  1190.  
  1191. #endif /* COBJMACROS */
  1192.  
  1193.  
  1194. #endif     /* C style interface */
  1195.  
  1196.  
  1197.  
  1198. HRESULT STDMETHODCALLTYPE IMediaStreamFilter_AddMediaStream_Proxy( 
  1199.     IMediaStreamFilter * This,
  1200.     /* [in] */ IAMMediaStream *pAMMediaStream);
  1201.  
  1202.  
  1203. void __RPC_STUB IMediaStreamFilter_AddMediaStream_Stub(
  1204.     IRpcStubBuffer *This,
  1205.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1206.     PRPC_MESSAGE _pRpcMessage,
  1207.     DWORD *_pdwStubPhase);
  1208.  
  1209.  
  1210. HRESULT STDMETHODCALLTYPE IMediaStreamFilter_GetMediaStream_Proxy( 
  1211.     IMediaStreamFilter * This,
  1212.     /* [in] */ REFMSPID idPurpose,
  1213.     /* [out] */ IMediaStream **ppMediaStream);
  1214.  
  1215.  
  1216. void __RPC_STUB IMediaStreamFilter_GetMediaStream_Stub(
  1217.     IRpcStubBuffer *This,
  1218.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1219.     PRPC_MESSAGE _pRpcMessage,
  1220.     DWORD *_pdwStubPhase);
  1221.  
  1222.  
  1223. HRESULT STDMETHODCALLTYPE IMediaStreamFilter_EnumMediaStreams_Proxy( 
  1224.     IMediaStreamFilter * This,
  1225.     /* [in] */ long Index,
  1226.     /* [out] */ IMediaStream **ppMediaStream);
  1227.  
  1228.  
  1229. void __RPC_STUB IMediaStreamFilter_EnumMediaStreams_Stub(
  1230.     IRpcStubBuffer *This,
  1231.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1232.     PRPC_MESSAGE _pRpcMessage,
  1233.     DWORD *_pdwStubPhase);
  1234.  
  1235.  
  1236. HRESULT STDMETHODCALLTYPE IMediaStreamFilter_SupportSeeking_Proxy( 
  1237.     IMediaStreamFilter * This,
  1238.     /* [in] */ BOOL bRenderer);
  1239.  
  1240.  
  1241. void __RPC_STUB IMediaStreamFilter_SupportSeeking_Stub(
  1242.     IRpcStubBuffer *This,
  1243.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1244.     PRPC_MESSAGE _pRpcMessage,
  1245.     DWORD *_pdwStubPhase);
  1246.  
  1247.  
  1248. HRESULT STDMETHODCALLTYPE IMediaStreamFilter_ReferenceTimeToStreamTime_Proxy( 
  1249.     IMediaStreamFilter * This,
  1250.     /* [out][in] */ REFERENCE_TIME *pTime);
  1251.  
  1252.  
  1253. void __RPC_STUB IMediaStreamFilter_ReferenceTimeToStreamTime_Stub(
  1254.     IRpcStubBuffer *This,
  1255.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1256.     PRPC_MESSAGE _pRpcMessage,
  1257.     DWORD *_pdwStubPhase);
  1258.  
  1259.  
  1260. HRESULT STDMETHODCALLTYPE IMediaStreamFilter_GetCurrentStreamTime_Proxy( 
  1261.     IMediaStreamFilter * This,
  1262.     /* [out] */ REFERENCE_TIME *pCurrentStreamTime);
  1263.  
  1264.  
  1265. void __RPC_STUB IMediaStreamFilter_GetCurrentStreamTime_Stub(
  1266.     IRpcStubBuffer *This,
  1267.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1268.     PRPC_MESSAGE _pRpcMessage,
  1269.     DWORD *_pdwStubPhase);
  1270.  
  1271.  
  1272. HRESULT STDMETHODCALLTYPE IMediaStreamFilter_WaitUntil_Proxy( 
  1273.     IMediaStreamFilter * This,
  1274.     /* [in] */ REFERENCE_TIME WaitStreamTime);
  1275.  
  1276.  
  1277. void __RPC_STUB IMediaStreamFilter_WaitUntil_Stub(
  1278.     IRpcStubBuffer *This,
  1279.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1280.     PRPC_MESSAGE _pRpcMessage,
  1281.     DWORD *_pdwStubPhase);
  1282.  
  1283.  
  1284. HRESULT STDMETHODCALLTYPE IMediaStreamFilter_Flush_Proxy( 
  1285.     IMediaStreamFilter * This,
  1286.     /* [in] */ BOOL bCancelEOS);
  1287.  
  1288.  
  1289. void __RPC_STUB IMediaStreamFilter_Flush_Stub(
  1290.     IRpcStubBuffer *This,
  1291.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1292.     PRPC_MESSAGE _pRpcMessage,
  1293.     DWORD *_pdwStubPhase);
  1294.  
  1295.  
  1296. HRESULT STDMETHODCALLTYPE IMediaStreamFilter_EndOfStream_Proxy( 
  1297.     IMediaStreamFilter * This);
  1298.  
  1299.  
  1300. void __RPC_STUB IMediaStreamFilter_EndOfStream_Stub(
  1301.     IRpcStubBuffer *This,
  1302.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1303.     PRPC_MESSAGE _pRpcMessage,
  1304.     DWORD *_pdwStubPhase);
  1305.  
  1306.  
  1307.  
  1308. #endif     /* __IMediaStreamFilter_INTERFACE_DEFINED__ */
  1309.  
  1310.  
  1311. #ifndef __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
  1312. #define __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
  1313.  
  1314. /* interface IDirectDrawMediaSampleAllocator */
  1315. /* [unique][uuid][local][object] */ 
  1316.  
  1317.  
  1318. EXTERN_C const IID IID_IDirectDrawMediaSampleAllocator;
  1319.  
  1320. #if defined(__cplusplus) && !defined(CINTERFACE)
  1321.     
  1322.     MIDL_INTERFACE("AB6B4AFC-F6E4-11d0-900D-00C04FD9189D")
  1323.     IDirectDrawMediaSampleAllocator : public IUnknown
  1324.     {
  1325.     public:
  1326.         virtual HRESULT STDMETHODCALLTYPE GetDirectDraw( 
  1327.             IDirectDraw **ppDirectDraw) = 0;
  1328.         
  1329.     };
  1330.     
  1331. #else     /* C style interface */
  1332.  
  1333.     typedef struct IDirectDrawMediaSampleAllocatorVtbl
  1334.     {
  1335.         BEGIN_INTERFACE
  1336.         
  1337.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1338.             IDirectDrawMediaSampleAllocator * This,
  1339.             /* [in] */ REFIID riid,
  1340.             /* [iid_is][out] */ void **ppvObject);
  1341.         
  1342.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1343.             IDirectDrawMediaSampleAllocator * This);
  1344.         
  1345.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1346.             IDirectDrawMediaSampleAllocator * This);
  1347.         
  1348.         HRESULT ( STDMETHODCALLTYPE *GetDirectDraw )( 
  1349.             IDirectDrawMediaSampleAllocator * This,
  1350.             IDirectDraw **ppDirectDraw);
  1351.         
  1352.         END_INTERFACE
  1353.     } IDirectDrawMediaSampleAllocatorVtbl;
  1354.  
  1355.     interface IDirectDrawMediaSampleAllocator
  1356.     {
  1357.         CONST_VTBL struct IDirectDrawMediaSampleAllocatorVtbl *lpVtbl;
  1358.     };
  1359.  
  1360.     
  1361.  
  1362. #ifdef COBJMACROS
  1363.  
  1364.  
  1365. #define IDirectDrawMediaSampleAllocator_QueryInterface(This,riid,ppvObject)    \
  1366.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1367.  
  1368. #define IDirectDrawMediaSampleAllocator_AddRef(This)    \
  1369.     (This)->lpVtbl -> AddRef(This)
  1370.  
  1371. #define IDirectDrawMediaSampleAllocator_Release(This)    \
  1372.     (This)->lpVtbl -> Release(This)
  1373.  
  1374.  
  1375. #define IDirectDrawMediaSampleAllocator_GetDirectDraw(This,ppDirectDraw)    \
  1376.     (This)->lpVtbl -> GetDirectDraw(This,ppDirectDraw)
  1377.  
  1378. #endif /* COBJMACROS */
  1379.  
  1380.  
  1381. #endif     /* C style interface */
  1382.  
  1383.  
  1384.  
  1385. HRESULT STDMETHODCALLTYPE IDirectDrawMediaSampleAllocator_GetDirectDraw_Proxy( 
  1386.     IDirectDrawMediaSampleAllocator * This,
  1387.     IDirectDraw **ppDirectDraw);
  1388.  
  1389.  
  1390. void __RPC_STUB IDirectDrawMediaSampleAllocator_GetDirectDraw_Stub(
  1391.     IRpcStubBuffer *This,
  1392.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1393.     PRPC_MESSAGE _pRpcMessage,
  1394.     DWORD *_pdwStubPhase);
  1395.  
  1396.  
  1397.  
  1398. #endif     /* __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ */
  1399.  
  1400.  
  1401. #ifndef __IDirectDrawMediaSample_INTERFACE_DEFINED__
  1402. #define __IDirectDrawMediaSample_INTERFACE_DEFINED__
  1403.  
  1404. /* interface IDirectDrawMediaSample */
  1405. /* [unique][uuid][local][object] */ 
  1406.  
  1407.  
  1408. EXTERN_C const IID IID_IDirectDrawMediaSample;
  1409.  
  1410. #if defined(__cplusplus) && !defined(CINTERFACE)
  1411.     
  1412.     MIDL_INTERFACE("AB6B4AFE-F6E4-11d0-900D-00C04FD9189D")
  1413.     IDirectDrawMediaSample : public IUnknown
  1414.     {
  1415.     public:
  1416.         virtual HRESULT STDMETHODCALLTYPE GetSurfaceAndReleaseLock( 
  1417.             /* [out] */ IDirectDrawSurface **ppDirectDrawSurface,
  1418.             /* [out] */ RECT *pRect) = 0;
  1419.         
  1420.         virtual HRESULT STDMETHODCALLTYPE LockMediaSamplePointer( void) = 0;
  1421.         
  1422.     };
  1423.     
  1424. #else     /* C style interface */
  1425.  
  1426.     typedef struct IDirectDrawMediaSampleVtbl
  1427.     {
  1428.         BEGIN_INTERFACE
  1429.         
  1430.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1431.             IDirectDrawMediaSample * This,
  1432.             /* [in] */ REFIID riid,
  1433.             /* [iid_is][out] */ void **ppvObject);
  1434.         
  1435.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1436.             IDirectDrawMediaSample * This);
  1437.         
  1438.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1439.             IDirectDrawMediaSample * This);
  1440.         
  1441.         HRESULT ( STDMETHODCALLTYPE *GetSurfaceAndReleaseLock )( 
  1442.             IDirectDrawMediaSample * This,
  1443.             /* [out] */ IDirectDrawSurface **ppDirectDrawSurface,
  1444.             /* [out] */ RECT *pRect);
  1445.         
  1446.         HRESULT ( STDMETHODCALLTYPE *LockMediaSamplePointer )( 
  1447.             IDirectDrawMediaSample * This);
  1448.         
  1449.         END_INTERFACE
  1450.     } IDirectDrawMediaSampleVtbl;
  1451.  
  1452.     interface IDirectDrawMediaSample
  1453.     {
  1454.         CONST_VTBL struct IDirectDrawMediaSampleVtbl *lpVtbl;
  1455.     };
  1456.  
  1457.     
  1458.  
  1459. #ifdef COBJMACROS
  1460.  
  1461.  
  1462. #define IDirectDrawMediaSample_QueryInterface(This,riid,ppvObject)    \
  1463.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1464.  
  1465. #define IDirectDrawMediaSample_AddRef(This)    \
  1466.     (This)->lpVtbl -> AddRef(This)
  1467.  
  1468. #define IDirectDrawMediaSample_Release(This)    \
  1469.     (This)->lpVtbl -> Release(This)
  1470.  
  1471.  
  1472. #define IDirectDrawMediaSample_GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect)    \
  1473.     (This)->lpVtbl -> GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect)
  1474.  
  1475. #define IDirectDrawMediaSample_LockMediaSamplePointer(This)    \
  1476.     (This)->lpVtbl -> LockMediaSamplePointer(This)
  1477.  
  1478. #endif /* COBJMACROS */
  1479.  
  1480.  
  1481. #endif     /* C style interface */
  1482.  
  1483.  
  1484.  
  1485. HRESULT STDMETHODCALLTYPE IDirectDrawMediaSample_GetSurfaceAndReleaseLock_Proxy( 
  1486.     IDirectDrawMediaSample * This,
  1487.     /* [out] */ IDirectDrawSurface **ppDirectDrawSurface,
  1488.     /* [out] */ RECT *pRect);
  1489.  
  1490.  
  1491. void __RPC_STUB IDirectDrawMediaSample_GetSurfaceAndReleaseLock_Stub(
  1492.     IRpcStubBuffer *This,
  1493.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1494.     PRPC_MESSAGE _pRpcMessage,
  1495.     DWORD *_pdwStubPhase);
  1496.  
  1497.  
  1498. HRESULT STDMETHODCALLTYPE IDirectDrawMediaSample_LockMediaSamplePointer_Proxy( 
  1499.     IDirectDrawMediaSample * This);
  1500.  
  1501.  
  1502. void __RPC_STUB IDirectDrawMediaSample_LockMediaSamplePointer_Stub(
  1503.     IRpcStubBuffer *This,
  1504.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1505.     PRPC_MESSAGE _pRpcMessage,
  1506.     DWORD *_pdwStubPhase);
  1507.  
  1508.  
  1509.  
  1510. #endif     /* __IDirectDrawMediaSample_INTERFACE_DEFINED__ */
  1511.  
  1512.  
  1513. #ifndef __IAMMediaTypeStream_INTERFACE_DEFINED__
  1514. #define __IAMMediaTypeStream_INTERFACE_DEFINED__
  1515.  
  1516. /* interface IAMMediaTypeStream */
  1517. /* [unique][uuid][local][object] */ 
  1518.  
  1519.  
  1520. EXTERN_C const IID IID_IAMMediaTypeStream;
  1521.  
  1522. #if defined(__cplusplus) && !defined(CINTERFACE)
  1523.     
  1524.     MIDL_INTERFACE("AB6B4AFA-F6E4-11d0-900D-00C04FD9189D")
  1525.     IAMMediaTypeStream : public IMediaStream
  1526.     {
  1527.     public:
  1528.         virtual HRESULT STDMETHODCALLTYPE GetFormat( 
  1529.             /* [out] */ AM_MEDIA_TYPE *pMediaType,
  1530.             /* [in] */ DWORD dwFlags) = 0;
  1531.         
  1532.         virtual HRESULT STDMETHODCALLTYPE SetFormat( 
  1533.             /* [in] */ AM_MEDIA_TYPE *pMediaType,
  1534.             /* [in] */ DWORD dwFlags) = 0;
  1535.         
  1536.         virtual HRESULT STDMETHODCALLTYPE CreateSample( 
  1537.             /* [in] */ long lSampleSize,
  1538.             /* [in] */ BYTE *pbBuffer,
  1539.             /* [in] */ DWORD dwFlags,
  1540.             /* [in] */ IUnknown *pUnkOuter,
  1541.             /* [out] */ IAMMediaTypeSample **ppAMMediaTypeSample) = 0;
  1542.         
  1543.         virtual HRESULT STDMETHODCALLTYPE GetStreamAllocatorRequirements( 
  1544.             /* [out] */ ALLOCATOR_PROPERTIES *pProps) = 0;
  1545.         
  1546.         virtual HRESULT STDMETHODCALLTYPE SetStreamAllocatorRequirements( 
  1547.             /* [in] */ ALLOCATOR_PROPERTIES *pProps) = 0;
  1548.         
  1549.     };
  1550.     
  1551. #else     /* C style interface */
  1552.  
  1553.     typedef struct IAMMediaTypeStreamVtbl
  1554.     {
  1555.         BEGIN_INTERFACE
  1556.         
  1557.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1558.             IAMMediaTypeStream * This,
  1559.             /* [in] */ REFIID riid,
  1560.             /* [iid_is][out] */ void **ppvObject);
  1561.         
  1562.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1563.             IAMMediaTypeStream * This);
  1564.         
  1565.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1566.             IAMMediaTypeStream * This);
  1567.         
  1568.         HRESULT ( STDMETHODCALLTYPE *GetMultiMediaStream )( 
  1569.             IAMMediaTypeStream * This,
  1570.             /* [out] */ IMultiMediaStream **ppMultiMediaStream);
  1571.         
  1572.         HRESULT ( STDMETHODCALLTYPE *GetInformation )( 
  1573.             IAMMediaTypeStream * This,
  1574.             /* [out] */ MSPID *pPurposeId,
  1575.             /* [out] */ STREAM_TYPE *pType);
  1576.         
  1577.         HRESULT ( STDMETHODCALLTYPE *SetSameFormat )( 
  1578.             IAMMediaTypeStream * This,
  1579.             /* [in] */ IMediaStream *pStreamThatHasDesiredFormat,
  1580.             /* [in] */ DWORD dwFlags);
  1581.         
  1582.         HRESULT ( STDMETHODCALLTYPE *AllocateSample )( 
  1583.             IAMMediaTypeStream * This,
  1584.             /* [in] */ DWORD dwFlags,
  1585.             /* [out] */ IStreamSample **ppSample);
  1586.         
  1587.         HRESULT ( STDMETHODCALLTYPE *CreateSharedSample )( 
  1588.             IAMMediaTypeStream * This,
  1589.             /* [in] */ IStreamSample *pExistingSample,
  1590.             /* [in] */ DWORD dwFlags,
  1591.             /* [out] */ IStreamSample **ppNewSample);
  1592.         
  1593.         HRESULT ( STDMETHODCALLTYPE *SendEndOfStream )( 
  1594.             IAMMediaTypeStream * This,
  1595.             DWORD dwFlags);
  1596.         
  1597.         HRESULT ( STDMETHODCALLTYPE *GetFormat )( 
  1598.             IAMMediaTypeStream * This,
  1599.             /* [out] */ AM_MEDIA_TYPE *pMediaType,
  1600.             /* [in] */ DWORD dwFlags);
  1601.         
  1602.         HRESULT ( STDMETHODCALLTYPE *SetFormat )( 
  1603.             IAMMediaTypeStream * This,
  1604.             /* [in] */ AM_MEDIA_TYPE *pMediaType,
  1605.             /* [in] */ DWORD dwFlags);
  1606.         
  1607.         HRESULT ( STDMETHODCALLTYPE *CreateSample )( 
  1608.             IAMMediaTypeStream * This,
  1609.             /* [in] */ long lSampleSize,
  1610.             /* [in] */ BYTE *pbBuffer,
  1611.             /* [in] */ DWORD dwFlags,
  1612.             /* [in] */ IUnknown *pUnkOuter,
  1613.             /* [out] */ IAMMediaTypeSample **ppAMMediaTypeSample);
  1614.         
  1615.         HRESULT ( STDMETHODCALLTYPE *GetStreamAllocatorRequirements )( 
  1616.             IAMMediaTypeStream * This,
  1617.             /* [out] */ ALLOCATOR_PROPERTIES *pProps);
  1618.         
  1619.         HRESULT ( STDMETHODCALLTYPE *SetStreamAllocatorRequirements )( 
  1620.             IAMMediaTypeStream * This,
  1621.             /* [in] */ ALLOCATOR_PROPERTIES *pProps);
  1622.         
  1623.         END_INTERFACE
  1624.     } IAMMediaTypeStreamVtbl;
  1625.  
  1626.     interface IAMMediaTypeStream
  1627.     {
  1628.         CONST_VTBL struct IAMMediaTypeStreamVtbl *lpVtbl;
  1629.     };
  1630.  
  1631.     
  1632.  
  1633. #ifdef COBJMACROS
  1634.  
  1635.  
  1636. #define IAMMediaTypeStream_QueryInterface(This,riid,ppvObject)    \
  1637.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1638.  
  1639. #define IAMMediaTypeStream_AddRef(This)    \
  1640.     (This)->lpVtbl -> AddRef(This)
  1641.  
  1642. #define IAMMediaTypeStream_Release(This)    \
  1643.     (This)->lpVtbl -> Release(This)
  1644.  
  1645.  
  1646. #define IAMMediaTypeStream_GetMultiMediaStream(This,ppMultiMediaStream)    \
  1647.     (This)->lpVtbl -> GetMultiMediaStream(This,ppMultiMediaStream)
  1648.  
  1649. #define IAMMediaTypeStream_GetInformation(This,pPurposeId,pType)    \
  1650.     (This)->lpVtbl -> GetInformation(This,pPurposeId,pType)
  1651.  
  1652. #define IAMMediaTypeStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)    \
  1653.     (This)->lpVtbl -> SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
  1654.  
  1655. #define IAMMediaTypeStream_AllocateSample(This,dwFlags,ppSample)    \
  1656.     (This)->lpVtbl -> AllocateSample(This,dwFlags,ppSample)
  1657.  
  1658. #define IAMMediaTypeStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)    \
  1659.     (This)->lpVtbl -> CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
  1660.  
  1661. #define IAMMediaTypeStream_SendEndOfStream(This,dwFlags)    \
  1662.     (This)->lpVtbl -> SendEndOfStream(This,dwFlags)
  1663.  
  1664.  
  1665. #define IAMMediaTypeStream_GetFormat(This,pMediaType,dwFlags)    \
  1666.     (This)->lpVtbl -> GetFormat(This,pMediaType,dwFlags)
  1667.  
  1668. #define IAMMediaTypeStream_SetFormat(This,pMediaType,dwFlags)    \
  1669.     (This)->lpVtbl -> SetFormat(This,pMediaType,dwFlags)
  1670.  
  1671. #define IAMMediaTypeStream_CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample)    \
  1672.     (This)->lpVtbl -> CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample)
  1673.  
  1674. #define IAMMediaTypeStream_GetStreamAllocatorRequirements(This,pProps)    \
  1675.     (This)->lpVtbl -> GetStreamAllocatorRequirements(This,pProps)
  1676.  
  1677. #define IAMMediaTypeStream_SetStreamAllocatorRequirements(This,pProps)    \
  1678.     (This)->lpVtbl -> SetStreamAllocatorRequirements(This,pProps)
  1679.  
  1680. #endif /* COBJMACROS */
  1681.  
  1682.  
  1683. #endif     /* C style interface */
  1684.  
  1685.  
  1686.  
  1687. HRESULT STDMETHODCALLTYPE IAMMediaTypeStream_GetFormat_Proxy( 
  1688.     IAMMediaTypeStream * This,
  1689.     /* [out] */ AM_MEDIA_TYPE *pMediaType,
  1690.     /* [in] */ DWORD dwFlags);
  1691.  
  1692.  
  1693. void __RPC_STUB IAMMediaTypeStream_GetFormat_Stub(
  1694.     IRpcStubBuffer *This,
  1695.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1696.     PRPC_MESSAGE _pRpcMessage,
  1697.     DWORD *_pdwStubPhase);
  1698.  
  1699.  
  1700. HRESULT STDMETHODCALLTYPE IAMMediaTypeStream_SetFormat_Proxy( 
  1701.     IAMMediaTypeStream * This,
  1702.     /* [in] */ AM_MEDIA_TYPE *pMediaType,
  1703.     /* [in] */ DWORD dwFlags);
  1704.  
  1705.  
  1706. void __RPC_STUB IAMMediaTypeStream_SetFormat_Stub(
  1707.     IRpcStubBuffer *This,
  1708.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1709.     PRPC_MESSAGE _pRpcMessage,
  1710.     DWORD *_pdwStubPhase);
  1711.  
  1712.  
  1713. HRESULT STDMETHODCALLTYPE IAMMediaTypeStream_CreateSample_Proxy( 
  1714.     IAMMediaTypeStream * This,
  1715.     /* [in] */ long lSampleSize,
  1716.     /* [in] */ BYTE *pbBuffer,
  1717.     /* [in] */ DWORD dwFlags,
  1718.     /* [in] */ IUnknown *pUnkOuter,
  1719.     /* [out] */ IAMMediaTypeSample **ppAMMediaTypeSample);
  1720.  
  1721.  
  1722. void __RPC_STUB IAMMediaTypeStream_CreateSample_Stub(
  1723.     IRpcStubBuffer *This,
  1724.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1725.     PRPC_MESSAGE _pRpcMessage,
  1726.     DWORD *_pdwStubPhase);
  1727.  
  1728.  
  1729. HRESULT STDMETHODCALLTYPE IAMMediaTypeStream_GetStreamAllocatorRequirements_Proxy( 
  1730.     IAMMediaTypeStream * This,
  1731.     /* [out] */ ALLOCATOR_PROPERTIES *pProps);
  1732.  
  1733.  
  1734. void __RPC_STUB IAMMediaTypeStream_GetStreamAllocatorRequirements_Stub(
  1735.     IRpcStubBuffer *This,
  1736.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1737.     PRPC_MESSAGE _pRpcMessage,
  1738.     DWORD *_pdwStubPhase);
  1739.  
  1740.  
  1741. HRESULT STDMETHODCALLTYPE IAMMediaTypeStream_SetStreamAllocatorRequirements_Proxy( 
  1742.     IAMMediaTypeStream * This,
  1743.     /* [in] */ ALLOCATOR_PROPERTIES *pProps);
  1744.  
  1745.  
  1746. void __RPC_STUB IAMMediaTypeStream_SetStreamAllocatorRequirements_Stub(
  1747.     IRpcStubBuffer *This,
  1748.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1749.     PRPC_MESSAGE _pRpcMessage,
  1750.     DWORD *_pdwStubPhase);
  1751.  
  1752.  
  1753.  
  1754. #endif     /* __IAMMediaTypeStream_INTERFACE_DEFINED__ */
  1755.  
  1756.  
  1757. #ifndef __IAMMediaTypeSample_INTERFACE_DEFINED__
  1758. #define __IAMMediaTypeSample_INTERFACE_DEFINED__
  1759.  
  1760. /* interface IAMMediaTypeSample */
  1761. /* [unique][uuid][local][object] */ 
  1762.  
  1763.  
  1764. EXTERN_C const IID IID_IAMMediaTypeSample;
  1765.  
  1766. #if defined(__cplusplus) && !defined(CINTERFACE)
  1767.     
  1768.     MIDL_INTERFACE("AB6B4AFB-F6E4-11d0-900D-00C04FD9189D")
  1769.     IAMMediaTypeSample : public IStreamSample
  1770.     {
  1771.     public:
  1772.         virtual HRESULT STDMETHODCALLTYPE SetPointer( 
  1773.             /* [in] */ BYTE *pBuffer,
  1774.             /* [in] */ long lSize) = 0;
  1775.         
  1776.         virtual HRESULT STDMETHODCALLTYPE GetPointer( 
  1777.             /* [out] */ BYTE **ppBuffer) = 0;
  1778.         
  1779.         virtual long STDMETHODCALLTYPE GetSize( void) = 0;
  1780.         
  1781.         virtual HRESULT STDMETHODCALLTYPE GetTime( 
  1782.             /* [out] */ REFERENCE_TIME *pTimeStart,
  1783.             /* [out] */ REFERENCE_TIME *pTimeEnd) = 0;
  1784.         
  1785.         virtual HRESULT STDMETHODCALLTYPE SetTime( 
  1786.             /* [in] */ REFERENCE_TIME *pTimeStart,
  1787.             /* [in] */ REFERENCE_TIME *pTimeEnd) = 0;
  1788.         
  1789.         virtual HRESULT STDMETHODCALLTYPE IsSyncPoint( void) = 0;
  1790.         
  1791.         virtual HRESULT STDMETHODCALLTYPE SetSyncPoint( 
  1792.             BOOL bIsSyncPoint) = 0;
  1793.         
  1794.         virtual HRESULT STDMETHODCALLTYPE IsPreroll( void) = 0;
  1795.         
  1796.         virtual HRESULT STDMETHODCALLTYPE SetPreroll( 
  1797.             BOOL bIsPreroll) = 0;
  1798.         
  1799.         virtual long STDMETHODCALLTYPE GetActualDataLength( void) = 0;
  1800.         
  1801.         virtual HRESULT STDMETHODCALLTYPE SetActualDataLength( 
  1802.             long __MIDL_0017) = 0;
  1803.         
  1804.         virtual HRESULT STDMETHODCALLTYPE GetMediaType( 
  1805.             AM_MEDIA_TYPE **ppMediaType) = 0;
  1806.         
  1807.         virtual HRESULT STDMETHODCALLTYPE SetMediaType( 
  1808.             AM_MEDIA_TYPE *pMediaType) = 0;
  1809.         
  1810.         virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity( void) = 0;
  1811.         
  1812.         virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity( 
  1813.             BOOL bDiscontinuity) = 0;
  1814.         
  1815.         virtual HRESULT STDMETHODCALLTYPE GetMediaTime( 
  1816.             /* [out] */ LONGLONG *pTimeStart,
  1817.             /* [out] */ LONGLONG *pTimeEnd) = 0;
  1818.         
  1819.         virtual HRESULT STDMETHODCALLTYPE SetMediaTime( 
  1820.             /* [in] */ LONGLONG *pTimeStart,
  1821.             /* [in] */ LONGLONG *pTimeEnd) = 0;
  1822.         
  1823.     };
  1824.     
  1825. #else     /* C style interface */
  1826.  
  1827.     typedef struct IAMMediaTypeSampleVtbl
  1828.     {
  1829.         BEGIN_INTERFACE
  1830.         
  1831.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1832.             IAMMediaTypeSample * This,
  1833.             /* [in] */ REFIID riid,
  1834.             /* [iid_is][out] */ void **ppvObject);
  1835.         
  1836.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1837.             IAMMediaTypeSample * This);
  1838.         
  1839.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1840.             IAMMediaTypeSample * This);
  1841.         
  1842.         HRESULT ( STDMETHODCALLTYPE *GetMediaStream )( 
  1843.             IAMMediaTypeSample * This,
  1844.             /* [in] */ IMediaStream **ppMediaStream);
  1845.         
  1846.         HRESULT ( STDMETHODCALLTYPE *GetSampleTimes )( 
  1847.             IAMMediaTypeSample * This,
  1848.             /* [out] */ STREAM_TIME *pStartTime,
  1849.             /* [out] */ STREAM_TIME *pEndTime,
  1850.             /* [out] */ STREAM_TIME *pCurrentTime);
  1851.         
  1852.         HRESULT ( STDMETHODCALLTYPE *SetSampleTimes )( 
  1853.             IAMMediaTypeSample * This,
  1854.             /* [in] */ const STREAM_TIME *pStartTime,
  1855.             /* [in] */ const STREAM_TIME *pEndTime);
  1856.         
  1857.         HRESULT ( STDMETHODCALLTYPE *Update )( 
  1858.             IAMMediaTypeSample * This,
  1859.             /* [in] */ DWORD dwFlags,
  1860.             /* [in] */ HANDLE hEvent,
  1861.             /* [in] */ PAPCFUNC pfnAPC,
  1862.             /* [in] */ DWORD_PTR dwAPCData);
  1863.         
  1864.         HRESULT ( STDMETHODCALLTYPE *CompletionStatus )( 
  1865.             IAMMediaTypeSample * This,
  1866.             /* [in] */ DWORD dwFlags,
  1867.             /* [in] */ DWORD dwMilliseconds);
  1868.         
  1869.         HRESULT ( STDMETHODCALLTYPE *SetPointer )( 
  1870.             IAMMediaTypeSample * This,
  1871.             /* [in] */ BYTE *pBuffer,
  1872.             /* [in] */ long lSize);
  1873.         
  1874.         HRESULT ( STDMETHODCALLTYPE *GetPointer )( 
  1875.             IAMMediaTypeSample * This,
  1876.             /* [out] */ BYTE **ppBuffer);
  1877.         
  1878.         long ( STDMETHODCALLTYPE *GetSize )( 
  1879.             IAMMediaTypeSample * This);
  1880.         
  1881.         HRESULT ( STDMETHODCALLTYPE *GetTime )( 
  1882.             IAMMediaTypeSample * This,
  1883.             /* [out] */ REFERENCE_TIME *pTimeStart,
  1884.             /* [out] */ REFERENCE_TIME *pTimeEnd);
  1885.         
  1886.         HRESULT ( STDMETHODCALLTYPE *SetTime )( 
  1887.             IAMMediaTypeSample * This,
  1888.             /* [in] */ REFERENCE_TIME *pTimeStart,
  1889.             /* [in] */ REFERENCE_TIME *pTimeEnd);
  1890.         
  1891.         HRESULT ( STDMETHODCALLTYPE *IsSyncPoint )( 
  1892.             IAMMediaTypeSample * This);
  1893.         
  1894.         HRESULT ( STDMETHODCALLTYPE *SetSyncPoint )( 
  1895.             IAMMediaTypeSample * This,
  1896.             BOOL bIsSyncPoint);
  1897.         
  1898.         HRESULT ( STDMETHODCALLTYPE *IsPreroll )( 
  1899.             IAMMediaTypeSample * This);
  1900.         
  1901.         HRESULT ( STDMETHODCALLTYPE *SetPreroll )( 
  1902.             IAMMediaTypeSample * This,
  1903.             BOOL bIsPreroll);
  1904.         
  1905.         long ( STDMETHODCALLTYPE *GetActualDataLength )( 
  1906.             IAMMediaTypeSample * This);
  1907.         
  1908.         HRESULT ( STDMETHODCALLTYPE *SetActualDataLength )( 
  1909.             IAMMediaTypeSample * This,
  1910.             long __MIDL_0017);
  1911.         
  1912.         HRESULT ( STDMETHODCALLTYPE *GetMediaType )( 
  1913.             IAMMediaTypeSample * This,
  1914.             AM_MEDIA_TYPE **ppMediaType);
  1915.         
  1916.         HRESULT ( STDMETHODCALLTYPE *SetMediaType )( 
  1917.             IAMMediaTypeSample * This,
  1918.             AM_MEDIA_TYPE *pMediaType);
  1919.         
  1920.         HRESULT ( STDMETHODCALLTYPE *IsDiscontinuity )( 
  1921.             IAMMediaTypeSample * This);
  1922.         
  1923.         HRESULT ( STDMETHODCALLTYPE *SetDiscontinuity )( 
  1924.             IAMMediaTypeSample * This,
  1925.             BOOL bDiscontinuity);
  1926.         
  1927.         HRESULT ( STDMETHODCALLTYPE *GetMediaTime )( 
  1928.             IAMMediaTypeSample * This,
  1929.             /* [out] */ LONGLONG *pTimeStart,
  1930.             /* [out] */ LONGLONG *pTimeEnd);
  1931.         
  1932.         HRESULT ( STDMETHODCALLTYPE *SetMediaTime )( 
  1933.             IAMMediaTypeSample * This,
  1934.             /* [in] */ LONGLONG *pTimeStart,
  1935.             /* [in] */ LONGLONG *pTimeEnd);
  1936.         
  1937.         END_INTERFACE
  1938.     } IAMMediaTypeSampleVtbl;
  1939.  
  1940.     interface IAMMediaTypeSample
  1941.     {
  1942.         CONST_VTBL struct IAMMediaTypeSampleVtbl *lpVtbl;
  1943.     };
  1944.  
  1945.     
  1946.  
  1947. #ifdef COBJMACROS
  1948.  
  1949.  
  1950. #define IAMMediaTypeSample_QueryInterface(This,riid,ppvObject)    \
  1951.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1952.  
  1953. #define IAMMediaTypeSample_AddRef(This)    \
  1954.     (This)->lpVtbl -> AddRef(This)
  1955.  
  1956. #define IAMMediaTypeSample_Release(This)    \
  1957.     (This)->lpVtbl -> Release(This)
  1958.  
  1959.  
  1960. #define IAMMediaTypeSample_GetMediaStream(This,ppMediaStream)    \
  1961.     (This)->lpVtbl -> GetMediaStream(This,ppMediaStream)
  1962.  
  1963. #define IAMMediaTypeSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)    \
  1964.     (This)->lpVtbl -> GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
  1965.  
  1966. #define IAMMediaTypeSample_SetSampleTimes(This,pStartTime,pEndTime)    \
  1967.     (This)->lpVtbl -> SetSampleTimes(This,pStartTime,pEndTime)
  1968.  
  1969. #define IAMMediaTypeSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)    \
  1970.     (This)->lpVtbl -> Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
  1971.  
  1972. #define IAMMediaTypeSample_CompletionStatus(This,dwFlags,dwMilliseconds)    \
  1973.     (This)->lpVtbl -> CompletionStatus(This,dwFlags,dwMilliseconds)
  1974.  
  1975.  
  1976. #define IAMMediaTypeSample_SetPointer(This,pBuffer,lSize)    \
  1977.     (This)->lpVtbl -> SetPointer(This,pBuffer,lSize)
  1978.  
  1979. #define IAMMediaTypeSample_GetPointer(This,ppBuffer)    \
  1980.     (This)->lpVtbl -> GetPointer(This,ppBuffer)
  1981.  
  1982. #define IAMMediaTypeSample_GetSize(This)    \
  1983.     (This)->lpVtbl -> GetSize(This)
  1984.  
  1985. #define IAMMediaTypeSample_GetTime(This,pTimeStart,pTimeEnd)    \
  1986.     (This)->lpVtbl -> GetTime(This,pTimeStart,pTimeEnd)
  1987.  
  1988. #define IAMMediaTypeSample_SetTime(This,pTimeStart,pTimeEnd)    \
  1989.     (This)->lpVtbl -> SetTime(This,pTimeStart,pTimeEnd)
  1990.  
  1991. #define IAMMediaTypeSample_IsSyncPoint(This)    \
  1992.     (This)->lpVtbl -> IsSyncPoint(This)
  1993.  
  1994. #define IAMMediaTypeSample_SetSyncPoint(This,bIsSyncPoint)    \
  1995.     (This)->lpVtbl -> SetSyncPoint(This,bIsSyncPoint)
  1996.  
  1997. #define IAMMediaTypeSample_IsPreroll(This)    \
  1998.     (This)->lpVtbl -> IsPreroll(This)
  1999.  
  2000. #define IAMMediaTypeSample_SetPreroll(This,bIsPreroll)    \
  2001.     (This)->lpVtbl -> SetPreroll(This,bIsPreroll)
  2002.  
  2003. #define IAMMediaTypeSample_GetActualDataLength(This)    \
  2004.     (This)->lpVtbl -> GetActualDataLength(This)
  2005.  
  2006. #define IAMMediaTypeSample_SetActualDataLength(This,__MIDL_0017)    \
  2007.     (This)->lpVtbl -> SetActualDataLength(This,__MIDL_0017)
  2008.  
  2009. #define IAMMediaTypeSample_GetMediaType(This,ppMediaType)    \
  2010.     (This)->lpVtbl -> GetMediaType(This,ppMediaType)
  2011.  
  2012. #define IAMMediaTypeSample_SetMediaType(This,pMediaType)    \
  2013.     (This)->lpVtbl -> SetMediaType(This,pMediaType)
  2014.  
  2015. #define IAMMediaTypeSample_IsDiscontinuity(This)    \
  2016.     (This)->lpVtbl -> IsDiscontinuity(This)
  2017.  
  2018. #define IAMMediaTypeSample_SetDiscontinuity(This,bDiscontinuity)    \
  2019.     (This)->lpVtbl -> SetDiscontinuity(This,bDiscontinuity)
  2020.  
  2021. #define IAMMediaTypeSample_GetMediaTime(This,pTimeStart,pTimeEnd)    \
  2022.     (This)->lpVtbl -> GetMediaTime(This,pTimeStart,pTimeEnd)
  2023.  
  2024. #define IAMMediaTypeSample_SetMediaTime(This,pTimeStart,pTimeEnd)    \
  2025.     (This)->lpVtbl -> SetMediaTime(This,pTimeStart,pTimeEnd)
  2026.  
  2027. #endif /* COBJMACROS */
  2028.  
  2029.  
  2030. #endif     /* C style interface */
  2031.  
  2032.  
  2033.  
  2034. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetPointer_Proxy( 
  2035.     IAMMediaTypeSample * This,
  2036.     /* [in] */ BYTE *pBuffer,
  2037.     /* [in] */ long lSize);
  2038.  
  2039.  
  2040. void __RPC_STUB IAMMediaTypeSample_SetPointer_Stub(
  2041.     IRpcStubBuffer *This,
  2042.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2043.     PRPC_MESSAGE _pRpcMessage,
  2044.     DWORD *_pdwStubPhase);
  2045.  
  2046.  
  2047. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_GetPointer_Proxy( 
  2048.     IAMMediaTypeSample * This,
  2049.     /* [out] */ BYTE **ppBuffer);
  2050.  
  2051.  
  2052. void __RPC_STUB IAMMediaTypeSample_GetPointer_Stub(
  2053.     IRpcStubBuffer *This,
  2054.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2055.     PRPC_MESSAGE _pRpcMessage,
  2056.     DWORD *_pdwStubPhase);
  2057.  
  2058.  
  2059. long STDMETHODCALLTYPE IAMMediaTypeSample_GetSize_Proxy( 
  2060.     IAMMediaTypeSample * This);
  2061.  
  2062.  
  2063. void __RPC_STUB IAMMediaTypeSample_GetSize_Stub(
  2064.     IRpcStubBuffer *This,
  2065.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2066.     PRPC_MESSAGE _pRpcMessage,
  2067.     DWORD *_pdwStubPhase);
  2068.  
  2069.  
  2070. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_GetTime_Proxy( 
  2071.     IAMMediaTypeSample * This,
  2072.     /* [out] */ REFERENCE_TIME *pTimeStart,
  2073.     /* [out] */ REFERENCE_TIME *pTimeEnd);
  2074.  
  2075.  
  2076. void __RPC_STUB IAMMediaTypeSample_GetTime_Stub(
  2077.     IRpcStubBuffer *This,
  2078.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2079.     PRPC_MESSAGE _pRpcMessage,
  2080.     DWORD *_pdwStubPhase);
  2081.  
  2082.  
  2083. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetTime_Proxy( 
  2084.     IAMMediaTypeSample * This,
  2085.     /* [in] */ REFERENCE_TIME *pTimeStart,
  2086.     /* [in] */ REFERENCE_TIME *pTimeEnd);
  2087.  
  2088.  
  2089. void __RPC_STUB IAMMediaTypeSample_SetTime_Stub(
  2090.     IRpcStubBuffer *This,
  2091.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2092.     PRPC_MESSAGE _pRpcMessage,
  2093.     DWORD *_pdwStubPhase);
  2094.  
  2095.  
  2096. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_IsSyncPoint_Proxy( 
  2097.     IAMMediaTypeSample * This);
  2098.  
  2099.  
  2100. void __RPC_STUB IAMMediaTypeSample_IsSyncPoint_Stub(
  2101.     IRpcStubBuffer *This,
  2102.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2103.     PRPC_MESSAGE _pRpcMessage,
  2104.     DWORD *_pdwStubPhase);
  2105.  
  2106.  
  2107. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetSyncPoint_Proxy( 
  2108.     IAMMediaTypeSample * This,
  2109.     BOOL bIsSyncPoint);
  2110.  
  2111.  
  2112. void __RPC_STUB IAMMediaTypeSample_SetSyncPoint_Stub(
  2113.     IRpcStubBuffer *This,
  2114.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2115.     PRPC_MESSAGE _pRpcMessage,
  2116.     DWORD *_pdwStubPhase);
  2117.  
  2118.  
  2119. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_IsPreroll_Proxy( 
  2120.     IAMMediaTypeSample * This);
  2121.  
  2122.  
  2123. void __RPC_STUB IAMMediaTypeSample_IsPreroll_Stub(
  2124.     IRpcStubBuffer *This,
  2125.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2126.     PRPC_MESSAGE _pRpcMessage,
  2127.     DWORD *_pdwStubPhase);
  2128.  
  2129.  
  2130. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetPreroll_Proxy( 
  2131.     IAMMediaTypeSample * This,
  2132.     BOOL bIsPreroll);
  2133.  
  2134.  
  2135. void __RPC_STUB IAMMediaTypeSample_SetPreroll_Stub(
  2136.     IRpcStubBuffer *This,
  2137.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2138.     PRPC_MESSAGE _pRpcMessage,
  2139.     DWORD *_pdwStubPhase);
  2140.  
  2141.  
  2142. long STDMETHODCALLTYPE IAMMediaTypeSample_GetActualDataLength_Proxy( 
  2143.     IAMMediaTypeSample * This);
  2144.  
  2145.  
  2146. void __RPC_STUB IAMMediaTypeSample_GetActualDataLength_Stub(
  2147.     IRpcStubBuffer *This,
  2148.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2149.     PRPC_MESSAGE _pRpcMessage,
  2150.     DWORD *_pdwStubPhase);
  2151.  
  2152.  
  2153. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetActualDataLength_Proxy( 
  2154.     IAMMediaTypeSample * This,
  2155.     long __MIDL_0017);
  2156.  
  2157.  
  2158. void __RPC_STUB IAMMediaTypeSample_SetActualDataLength_Stub(
  2159.     IRpcStubBuffer *This,
  2160.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2161.     PRPC_MESSAGE _pRpcMessage,
  2162.     DWORD *_pdwStubPhase);
  2163.  
  2164.  
  2165. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_GetMediaType_Proxy( 
  2166.     IAMMediaTypeSample * This,
  2167.     AM_MEDIA_TYPE **ppMediaType);
  2168.  
  2169.  
  2170. void __RPC_STUB IAMMediaTypeSample_GetMediaType_Stub(
  2171.     IRpcStubBuffer *This,
  2172.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2173.     PRPC_MESSAGE _pRpcMessage,
  2174.     DWORD *_pdwStubPhase);
  2175.  
  2176.  
  2177. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetMediaType_Proxy( 
  2178.     IAMMediaTypeSample * This,
  2179.     AM_MEDIA_TYPE *pMediaType);
  2180.  
  2181.  
  2182. void __RPC_STUB IAMMediaTypeSample_SetMediaType_Stub(
  2183.     IRpcStubBuffer *This,
  2184.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2185.     PRPC_MESSAGE _pRpcMessage,
  2186.     DWORD *_pdwStubPhase);
  2187.  
  2188.  
  2189. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_IsDiscontinuity_Proxy( 
  2190.     IAMMediaTypeSample * This);
  2191.  
  2192.  
  2193. void __RPC_STUB IAMMediaTypeSample_IsDiscontinuity_Stub(
  2194.     IRpcStubBuffer *This,
  2195.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2196.     PRPC_MESSAGE _pRpcMessage,
  2197.     DWORD *_pdwStubPhase);
  2198.  
  2199.  
  2200. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetDiscontinuity_Proxy( 
  2201.     IAMMediaTypeSample * This,
  2202.     BOOL bDiscontinuity);
  2203.  
  2204.  
  2205. void __RPC_STUB IAMMediaTypeSample_SetDiscontinuity_Stub(
  2206.     IRpcStubBuffer *This,
  2207.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2208.     PRPC_MESSAGE _pRpcMessage,
  2209.     DWORD *_pdwStubPhase);
  2210.  
  2211.  
  2212. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_GetMediaTime_Proxy( 
  2213.     IAMMediaTypeSample * This,
  2214.     /* [out] */ LONGLONG *pTimeStart,
  2215.     /* [out] */ LONGLONG *pTimeEnd);
  2216.  
  2217.  
  2218. void __RPC_STUB IAMMediaTypeSample_GetMediaTime_Stub(
  2219.     IRpcStubBuffer *This,
  2220.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2221.     PRPC_MESSAGE _pRpcMessage,
  2222.     DWORD *_pdwStubPhase);
  2223.  
  2224.  
  2225. HRESULT STDMETHODCALLTYPE IAMMediaTypeSample_SetMediaTime_Proxy( 
  2226.     IAMMediaTypeSample * This,
  2227.     /* [in] */ LONGLONG *pTimeStart,
  2228.     /* [in] */ LONGLONG *pTimeEnd);
  2229.  
  2230.  
  2231. void __RPC_STUB IAMMediaTypeSample_SetMediaTime_Stub(
  2232.     IRpcStubBuffer *This,
  2233.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2234.     PRPC_MESSAGE _pRpcMessage,
  2235.     DWORD *_pdwStubPhase);
  2236.  
  2237.  
  2238.  
  2239. #endif     /* __IAMMediaTypeSample_INTERFACE_DEFINED__ */
  2240.  
  2241.  
  2242.  
  2243. #ifndef __DirectShowStreamLib_LIBRARY_DEFINED__
  2244. #define __DirectShowStreamLib_LIBRARY_DEFINED__
  2245.  
  2246. /* library DirectShowStreamLib */
  2247. /* [helpstring][version][uuid] */ 
  2248.  
  2249.  
  2250. EXTERN_C const IID LIBID_DirectShowStreamLib;
  2251.  
  2252. EXTERN_C const CLSID CLSID_AMMultiMediaStream;
  2253.  
  2254. #ifdef __cplusplus
  2255.  
  2256. class DECLSPEC_UUID("49c47ce5-9ba4-11d0-8212-00c04fc32c45")
  2257. AMMultiMediaStream;
  2258. #endif
  2259. #endif /* __DirectShowStreamLib_LIBRARY_DEFINED__ */
  2260.  
  2261. /* interface __MIDL_itf_amstream_0410 */
  2262. /* [local] */ 
  2263.  
  2264. #ifndef __cplusplus
  2265. EXTERN_C const CLSID CLSID_AMMultiMediaStream;
  2266. #endif
  2267. DEFINE_GUID(CLSID_AMDirectDrawStream, /* 49c47ce4-9ba4-11d0-8212-00c04fc32c45 */
  2268. 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
  2269. DEFINE_GUID(CLSID_AMAudioStream, /* 8496e040-af4c-11d0-8212-00c04fc32c45 */
  2270. 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
  2271. DEFINE_GUID(CLSID_AMAudioData, /* f2468580-af8a-11d0-8212-00c04fc32c45 */
  2272. 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
  2273. DEFINE_GUID(CLSID_AMMediaTypeStream, /* CF0F2F7C-F7BF-11d0-900D-00C04FD9189D */
  2274. 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0xd, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
  2275.  
  2276.  
  2277. extern RPC_IF_HANDLE __MIDL_itf_amstream_0410_v0_0_c_ifspec;
  2278. extern RPC_IF_HANDLE __MIDL_itf_amstream_0410_v0_0_s_ifspec;
  2279.  
  2280. /* Additional Prototypes for ALL interfaces */
  2281.  
  2282. unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
  2283. unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
  2284. unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
  2285. void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 
  2286.  
  2287. /* end of Additional Prototypes */
  2288.  
  2289. #ifdef __cplusplus
  2290. }
  2291. #endif
  2292.  
  2293. #endif
  2294.  
  2295.  
  2296.